/** @file www/js/kasa.js

    knihovna zakladnich JavaScriptovych funkci a nastaveni

    @author Petr Wolf
**/

// urceni prohlizece
if (document.all) document.getElementById = document.all;
var dhtml = (document.getElementById || document.all) && navigator.userAgent.indexOf('Opera') == -1 ? true : false;
var previousSmallTab = 1;

var rating_gray = new Image(21, 18);
rating_gray.src='http://img.kasa.cz/kasa-img/rating/rating-gray.gif';
var rating_yellow = new Image(21, 18);
rating_yellow.src='http://img.kasa.cz/kasa-img/rating/rating-yellow.gif';

String.prototype.trim = function()
{
    return this.replace(/(^\s*)|(\s*$)/g, "")
};

function open_in_popup(url, w, h)
{
    var vlevo = (screen.width-w)/2;
    var zhora = (screen.height-h)/2;
    okno = window.open(url, 'NewWin','resizable=0,top=' + zhora + ',left=' + vlevo + ',menubar=0,width=' + w + ',height=' + h);
    okno.focus()
}

/* AJAX */
function createHttpRequest()
{
    var http_request;

    if(window.XMLHttpRequest) 
    { 
        http_request = new XMLHttpRequest();
    } 
    else if(window.ActiveXObject) 
    { 
        try 
        {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } 
        catch(e) 
        {
            http_request = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    
    return http_request;
}

function nahratDalsiPrislusenstvi(product_id, limit_from)
{
    document.getElementById('dalsi-prislusenstvi-kotva').style.display = 'none';
    document.getElementById('dalsi-prislusenstvi-kotva').innerHTML = '';
    document.getElementById('dalsi-prislusenstvi-loading').style.display = 'block';
    
    var http_request = createHttpRequest();

    http_request.onreadystatechange = function() { zobrazitDalsiPrislusenstvi(http_request); };
    http_request.open('GET', '/ajax_scripts/zbozi_prislusenstvi.php?product=' + product_id + '&from=' + limit_from, true);
    http_request.send(null);
}

function zobrazitDalsiPrislusenstvi(http_request)
{
    if(http_request.readyState == 4) 
    {
        if(http_request.status == 200) 
        {
            document.getElementById('dalsi-prislusenstvi-kotva').innerHTML = http_request.responseText;
            document.getElementById('dalsi-prislusenstvi-loading').style.display = 'none';
            document.getElementById('dalsi-prislusenstvi-kotva').style.display = 'block';
            document.getElementById('dalsi-prislusenstvi-open-link').style.display = 'none';
            document.getElementById('dalsi-prislusenstvi-close-link').style.display = 'block';
        } 
        else 
        {
            alert('zobrazitDalsiPrislusenstvi failed.');
        }
    }
}

function skrytDalsiPrislusenstvi()
{
    document.getElementById('dalsi-prislusenstvi-open-link').style.display = 'block';
    document.getElementById('dalsi-prislusenstvi-close-link').style.display = 'none';
    document.getElementById('dalsi-prislusenstvi-kotva').style.display = 'none';
    location.href='#prislusenstvi';
}

function aktivni_mala_zalozka(id)
{
    try
    {
        if(previousSmallTab)
        {
            neaktivni_mala_zalozka(previousSmallTab);
        }
        
        document.getElementById('mz-' + id).className = 'dpz-zalozka dpz-zalozka-aktivni';
        
        previousSmallTab = id;
    }
    catch(e) {}
}

function neaktivni_mala_zalozka(id)
{
    try
    {
        document.getElementById('mz-' + id).className = 'dpz-zalozka';
    }
    catch(e) {}
}

function detailTabPopis(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_popis.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabGalerie(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_ilustrace.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabPrislusenstvi(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_prislusenstvi.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabDotaz(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_dotaz.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabDostupnost(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_dostupnost.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabSplatky(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_splatky.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabVarianty(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_varianty.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabSety(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_sety.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabRecenze(product_id)
{
    var http_request = createHttpRequest();
    detailTabLoading();

    http_request.onreadystatechange = function() { detailTabObsah(http_request); };
    http_request.open('GET', '/ajax_scripts/detail_zbozi_recenze.php?product=' + product_id, true);
    http_request.send(null);
}

function detailTabLoading()
{
    document.getElementById('detail-produktu-zalozky-obsah-kotva').style.display = 'none';
    document.getElementById('detail-produktu-zalozky-obsah-kotva').innerHTML = '';
    document.getElementById('detail-produktu-zalozky-loading').style.display = 'block';
}

function detailTabObsah(http_request)
{
    if(http_request.readyState == 4) 
    {
        if(http_request.status == 200) 
        {
            document.getElementById('detail-produktu-zalozky-obsah-kotva').innerHTML = http_request.responseText;
            document.getElementById('detail-produktu-zalozky-loading').style.display = 'none';
            document.getElementById('detail-produktu-zalozky-obsah-kotva').style.display = 'block';
        } 
        else 
        {
            alert('zobrazitDalsiPrislusenstvi failed.');
        }
    }
}

function openRecensionForm()
{
    document.getElementById('recenze-form').style.display='block';
    document.getElementById('pridat-recenzi').style.display='none';
}

function closeRecensionForm()
{
    document.getElementById('recenze-form').style.display='none';
    document.getElementById('pridat-recenzi').style.display='block';
}

function recensionUsefulness(recension, rating, token)
{
    var http_request = createHttpRequest();

    http_request.onreadystatechange = function() { recensionUsefulnessResult(http_request); };
    http_request.open('GET', '/ajax_scripts/hodnoceni_recenze.php?recenze=' + recension + '&hodnoceni='+rating+'&token='+token, true);
    http_request.send(null);
}

function recensionUsefulnessResult(http_request)
{
    if(http_request.readyState == 4) 
    {
        if(http_request.status == 200) 
        {
            alert(http_request.responseText);
        } 
        else 
        {
            alert('Recension usefulness rating failed.');
        }
    }
}

function recensionProductRating(rating)
{
    var hodnoceni_text = new Array('<i>(nevybráno)</i>', '(špatný)', '(ucházející)', '(průměrný)', '(dobrý)', '(vynikající)');
    try
    {
        document.getElementById('recenze-hodnoceni').value = rating;
        for(var i=1; i<=5; i++)
            document.getElementById('hodnoceni-'+i).src = 'http://img.kasa.cz/kasa-img/rating/rating-gray.gif';
        for(var i=1; i<=rating; i++)
            document.getElementById('hodnoceni-'+i).src = 'http://img.kasa.cz/kasa-img/rating/rating-yellow.gif';
    }
    catch(e) {}
    
    try
    {
        document.getElementById('hodnoceni-text').innerHTML = hodnoceni_text[rating];
    }
    catch(e) {}
}

function checkRecensionForm()
{
    re = new RegExp('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
    if(document.getElementById('recenze-jmeno').value.trim() == '')
    {
        alert('Vyplňte prosím Vaše jméno.');
        document.getElementById('recenze-jmeno').focus();
        return false;
    }
    else if(!re.test(document.getElementById('recenze-email').value))
    {
        alert('Zadaná e-mailová adresa není platná.');
        document.getElementById('recenze-email').focus();
        return false;
    }
    else if(document.getElementById('recenze-hodnoceni').value == '0')
    {
        alert('Zvolte prosím hodnocení produktu kliknutím na příslušný počet hvězdiček.');
        return false;
    }
    else
        return true;
}

function recensionForFocus(eml_ptr)
{
    if(eml_ptr.value.trim() == 'Zde vepište co se Vám na výrobku líbí')
        eml_ptr.value = '';
}

function recensionForBlur(eml_ptr)
{
    if(eml_ptr.value.trim() == '')
        eml_ptr.value = 'Zde vepište co se Vám na výrobku líbí';
}

function recensionAgainstFocus(eml_ptr)
{
    if(eml_ptr.value.trim() == 'Zde vepište co se Vám na výrobku nelíbí')
        eml_ptr.value = '';
}

function recensionAgainstBlur(eml_ptr)
{
    if(eml_ptr.value.trim() == '')
        eml_ptr.value = 'Zde vepište co se Vám na výrobku nelíbí';
}

function submitRecension(zb_index)
{
    if(checkRecensionForm())
    {
        var http_request = createHttpRequest();
        var request = '';
        
        request += 'zb_index=' + zb_index;
        request += '&jmeno=' + document.getElementById('recenze-jmeno').value.trim();
        request += '&email=' + document.getElementById('recenze-email').value.trim();
        request += '&pro=' + document.getElementById('recenze-pro').value.trim();
        request += '&proti=' + document.getElementById('recenze-proti').value.trim();
        request += '&shrnuti=' + document.getElementById('recenze-shrnuti').value.trim();
        request += '&hodnoceni=' + document.getElementById('recenze-hodnoceni').value.trim();

        http_request.onreadystatechange = function() { submitRecensionResult(http_request, zb_index); };
        http_request.open('POST', '/ajax_scripts/odeslani_recenze.php', true);
        http_request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        http_request.setRequestHeader("Accept-Encoding","utf-8");
        http_request.setRequestHeader("Accept-Language","cs");
        http_request.send(request);
    }
}

function submitRecensionResult(http_request, zb_index)
{
    if(http_request.readyState == 4) 
    {
        if(http_request.status == 200) 
        {
            //alert(http_request.responseText);
            var xmlResponse = http_request.responseXML;
            
            var msg = xmlResponse.getElementsByTagName('message')[0].firstChild.data;
            var code = xmlResponse.getElementsByTagName('code')[0].firstChild.data;
            
            if(code == '1')
            {
                alert(msg);
                //clearRecensionForm()
                aktivni_mala_zalozka('9');
                detailTabRecenze(zb_index);
            }
            else
                alert(msg);
        } 
        else 
        {
            alert('Recension submit failed.');
        }
    }
}

function clearRecensionForm()
{
    document.getElementById('recenze-jmeno').value = '';
    document.getElementById('recenze-email').value = '';
    document.getElementById('recenze-pro').value = '';
    document.getElementById('recenze-proti').value = '';
    document.getElementById('recenze-shrnuti').value = '';
    document.getElementById('recenze-hodnoceni').value = '0';
}

/* KASA pomocnik */
function close_btn_down()
{
    document.getElementById('close-btn').style.borderTop = 'solid #666666 1px';
    document.getElementById('close-btn').style.borderLeft = 'solid #666666 1px';
}

function close_btn_up()
{
    document.getElementById('close-btn').style.borderTop = '0px';
    document.getElementById('close-btn').style.borderLeft = '0px';
}

function close_helper()
{
    document.getElementById('help-banner-shadow').style.display = 'none';
    document.getElementById('help-banner').style.display = 'none';
    document.getElementById('close-btn').style.display = 'none';
    
    var platnost = new Date();
    platnost.setDate(platnost.getDate() + 1);
    document.cookie="kasa_helper_{/literal}{$zbozi->zb_parametry}{literal}=-10; expires=0; path=/; domain=eukasa.pl";
}

function check_help_request()
{
    re = new RegExp('^(\\+)?[0-9 ]{9,20}$');
    if(document.getElementById('help-jmeno').value == "")
    {
        alert("Zadejte prosím své jméno");
        document.getElementById('help-jmeno').focus();
        return false;
    }
    else if(!re.test(document.getElementById('help-telefon').value))
    {
        alert("Telefonní číslo není platné");
        document.getElementById('help-telefon').focus();
        return false;
    }
    else
        return true;
}
/* END of KASA pomocnik */

function KontrolaTelefonu(e)
{
    try
    {   
        if(document.all) // verze pro M$ osla 
        {  
            if( event.keyCode == 43 || event.keyCode == 8 || event.keyCode == 0 || (event.keyCode >= 48 && event.keyCode <= 57) )
                return true;
            else
                return false;
        }
        else 
        {  
            if(e.which)
            {
                if( e.which == 43 || e.which == 8 || e.which == 0 || (e.which >= 48 && e.which <= 57) )
                    return true;
                else
                    return false;
            }
            else // nekompatibilni prohlizec
                return true;
        }
    }
    catch(e) {}
}

function KontrolaDIC(e)
{
    try
    {   
        if(document.all) // verze pro M$ osla 
        {  
            if( event.keyCode == 67 || event.keyCode == 99 || event.keyCode == 90 || event.keyCode == 122 || event.keyCode == 43 || event.keyCode == 8 || event.keyCode == 0 || (event.keyCode >= 48 && event.keyCode <= 57) )
                return true;
            else
                return false;
        }
        else 
        {  
            if(e.which)
            {
                if( e.which == 67 || e.which == 99 || e.which == 90 || e.which == 122 || e.which == 43 || e.which == 8 || e.which == 0 || (e.which >= 48 && e.which <= 57) )
                    return true;
                else
                    return false;
            }
            else // nekompatibilni prohlizec
                return true;
        }
    }
    catch(e) {}
}

function kontrolaFormulareDotaz()
{
    re = new RegExp('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
    
    if(document.getElementById('dotaz-jmeno').value.trim() == '')
    {
        alert("Wpisz imię.");
        document.getElementById('dotaz-jmeno').focus();
        return false;
    }
    else if(!re.test(document.getElementById('dotaz-email').value))
    {
        alert("Podany adres e-mailowy ma niewłaściwy format.");
        document.getElementById('dotaz-email').focus();
        return false;
    }
    else if(document.getElementById('dotaz-text').value.trim() == '')
    {
        alert("Wpisz pytanie.");
        document.getElementById('dotaz-text').focus();
        return false;
    }
    else
        return true;
}

function DotazCheck()
{
    re = new RegExp('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
    if(!re.test(document.getElementById('dotaz-email').value))
    {
        alert("Podany adres e-mailowy ma niewłaściwy format.");
        document.getElementById('dotaz-email').focus();
        return false;
    }
    else
        return true;
}

/** kontrola prvku s pozadovanou mail. adresou */
function mailCheck(prvek)
{
    if (window.RegExp)
    {
        reEM = new RegExp('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
        if (!reEM.test(prvek.value))
        {
            alert("Podany adres e-mailowy ma niewłaściwy format.");
            prvek.focus();
            return false;
        }
    }
    return true;
}

/** kontrola prvku s pozadovanym telefonnim cislem */
function telefonCheck(prvek)
{
    if (window.RegExp)
    {
        reEM = new RegExp('^(\\+)?[0-9 ]{9,20}$');
        if (!reEM.test(prvek.value)) {
        alert("Podany numer jest nieprawidłowy");
            prvek.focus();
            return false;
        }
    }
    return true;
}

/** obecna kontrola formulare */
function formCheck(prvky)
{
    for (var i=0; i < prvky.length; i++) {
        if (prvky[i][0].value == '') {
            alert(prvky[i][1]);
            prvky[i][0].focus();
            return false;
        }
    }

    return true;
}

/** pozmeni styl v menu u dane kategorie */
function menuAktivni(k_index)
{
    if (k_index) {
        var element = document.getElementById('menu_'+k_index);
        if((element != 0) || (element != false))
        { 
            try
            {
                element.className = 'menu_aktivni';
            }
            catch(e) {}
        }
    }
}

/** doplnuje 0 do desetinneho cisla, aby bylo ve tvaru XX.X0 nebo XX.00 nebo XX.XX  */
function cenaToString(cena)
{
    cena = cena*100;
    cena = Math.round(cena);
    cena = cena/100;

    var zaokrouhlena   = Math.floor(cena);
    var zaokrouhlena10 = Math.floor(cena*10);
    var cena10		   = cena*10;

    if (zaokrouhlena == cena)
        cenaStr = cena.toString() + '.00';
  	else {
		if (zaokrouhlena10 == cena10)
            cenaStr = cena.toString()+'0';
		else
            cenaStr = cena;
	}

    return cenaStr;
}

function toggleDisplay(elementId,display)
{
    var element = document.getElementById(elementId);
    try
    {
        if(display)
            element.style.display='block';
        else
            element.style.display='none';
    }
    catch(e) {}
}

/** otevre okenko pro zaslani hesla */
function posliHeslo(elementId)
{
    var email = document.getElementById(elementId);

    if (email.value == '') {
        alert("Nejprve vyplntě svůj login (e-mailovou adresu).");
        email.focus();
    }
    else {
        var wSirka = 300;
        var wVyska = 80;
        var vyska = screen.height;
        var sirka = screen.width;
        var levy = (sirka - wSirka)/2;
        var horni = (vyska - wVyska-25)/2;

        window.open('heslo.php?'+email.value,'',"width="+wSirka+", height="+wVyska+", left="+levy+", top="+horni);
    }
}

function dostupnost(zbozi)
{
    var wSirka = 500;
	var wVyska = 550;
    var vyska = screen.height;
    var sirka = screen.width;
    var levy = (sirka - wSirka)/2;
    var horni = (vyska - wVyska-50)/2;
    window.open('/dostepnosc/?id='+zbozi, '', "scrollbars= yes, width="+wSirka+", height="+wVyska+", left="+levy+", top="+horni);
}

function check_comp_form()
{
    re = new RegExp('^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
    if(document.getElementById('soutez-jmeno').value == '')
    {
        document.getElementById('soutez-jmeno').focus();
        alert("Vyplňte prosím jméno!");
        return false;
    }
    else if(document.getElementById('soutez-prijmeni').value == '')
    {
        document.getElementById('soutez-prijmeni').focus();
        alert("Vyplňte prosím příjmení!");
        return false;
    }
    else if(!re.test(document.getElementById('soutez-email').value))
    {
        document.getElementById('soutez-email').focus();
        alert("Zadaná e-mailová adresa není platná!");
        return false;
    }
    else
        return true;
}
