var prvneEditovanoA = new Array(true, true, true, true, true);
var prvneEditovanoACount = 5;
var prvneEditovanoB = new Array(true, true, true, true, true, true, true);
var prvneEditovanoBCount = 7;
var prvneEditovanoC = new Array(true, true);
var prvneEditovanoCCount = 2;
var visible_table_row = document.getElementById('visible_table_row').style.display;
var validPrefix = "valid";
var emailDefaultValue = "@";
var kaptchaAIsValid = false;
var kaptchaBIsValid = false;
var kaptchaCIsValid = false;

window.onload = function()
{
    document.getElementById('formURIAB').value = location.href;
}

function indexPrvneEditovanoA(txtName) {
    switch(txtName) {
    case 'txtJmenoAPrijmeniA':
        return 0;
    case 'txtTelefonA':
        return 1;
    case 'txtEmailA':
        return 2;
    case 'tarVzkazA':
        return 3;
    case 'txtKaptchaA':
        return 4;
    }
}

function indexPrvneEditovanoB(txtName) {
    switch(txtName) {
    case 'txtObchodniNazevB':
        return 0;
    case 'txtICOB':
        return 1;
    case 'txtAdresaSpolecnostiB':
        return 2;
    case 'txtJmenoAPrijmeniB':
        return 3;
    case 'txtTelefonB':
        return 4;
    case 'txtEmailB':
        return 5;
    case 'txtKaptchaB':
        return 6;
    }
}

function indexPrvneEditovanoC(txtName) {
    switch(txtName) {
    case 'tarVzkazC':
        return 0;
    case 'txtKaptchaC':
        return 1;
    }
}

function kontaktyABOK(suffix) {
    var tel = filled('txtTelefon' + suffix);
    var email = filled('txtEmail' + suffix);
    
    if (email == true && document.getElementById('txtEmail' + suffix).value == emailDefaultValue)
        email = false;
    
    if (tel || email)
        return true;

    return false;
}

function filled(id) {
    var text = document.getElementById(id).value;
    
    if (text == null || text == '')
        return false;
    
    return true;
}

function getLastCharacter(s) {
    return s.substring(s.length - 1,s.length);
}

function validate(txtName, blured) {
    var suffix = getLastCharacter(txtName);
    
    if (blured) {
        switch(suffix) {
        case 'A':
            prvneEditovanoA[indexPrvneEditovanoA(txtName)] = false;
            break;
        case 'B':
            prvneEditovanoB[indexPrvneEditovanoB(txtName)] = false;
            break;
        case 'C':
            prvneEditovanoC[indexPrvneEditovanoC(txtName)] = false;
            break;
        }
    }
    
    if (txtName == 'txtTelefonA' || txtName == 'txtEmailA') {
        return !prvneEditovanoA[indexPrvneEditovanoA('txtTelefonA')] && !prvneEditovanoA[indexPrvneEditovanoA('txtEmailA')];
    } else if (txtName == 'txtTelefonB' || txtName == 'txtEmailB') {
        return !prvneEditovanoB[indexPrvneEditovanoB('txtTelefonB')] && !prvneEditovanoB[indexPrvneEditovanoB('txtEmailB')];
    } else {
        if (blured)
            return true;
        
        switch(suffix) {
        case 'A':
            return !prvneEditovanoA[indexPrvneEditovanoA(txtName)];
        case 'B':
            return !prvneEditovanoB[indexPrvneEditovanoB(txtName)];
        case 'C':
            return !prvneEditovanoC[indexPrvneEditovanoC(txtName)];
        }
    }
}

function onBlurOronKeyUp(txtName, blured) {
    if ((txtName == 'txtKaptchaA' || txtName == 'txtKaptchaB' || txtName == 'txtKaptchaC')  &&  !blured) {
        var suffix = getLastCharacter(txtName);
        switch(suffix) {
        case 'A':
            kaptchaAIsValid = false;
            break;
        case 'B':
            kaptchaBIsValid = false;
            break;
        case 'C':
            kaptchaCIsValid = false;
            break;
        }
        
        if (filled(txtName)) {
            if (document.getElementById(txtName).value.length == 5)
                ajaxFunction(txtName);
        }
    }
    
    if (!validate(txtName, blured))
        return;
    
    if (txtName == 'txtJmenoAPrijmeniA' || txtName == 'txtObchodniNazevB' || txtName == 'txtICOB' || txtName == 'txtAdresaSpolecnostiB' || txtName == 'txtJmenoAPrijmeniB' || txtName == 'tarVzkazC') {
        document.getElementById(validPrefix + txtName).style.display = (filled(txtName) ? 'none' : visible_table_row);            
    } else if (txtName == 'txtTelefonA' || txtName == 'txtEmailA') {
        document.getElementById('validtxtTelefonNeboEmailA').style.display = (kontaktyABOK("A") ? 'none' : visible_table_row);
    } else if (txtName == 'txtTelefonB' || txtName == 'txtEmailB') {
        document.getElementById('validtxtTelefonNeboEmailB').style.display = (kontaktyABOK("B") ? 'none' : visible_table_row);
    } else if (txtName == 'tarVzkazA') {
        document.getElementById(validPrefix + txtName).style.display = (filled(txtName) ? 'none' : 'inline');            
    } else if (txtName == 'txtKaptchaA' || txtName == 'txtKaptchaB' || txtName == 'txtKaptchaC') {
        if (filled(txtName)) {
            document.getElementById(validPrefix + txtName).style.display = 'none';
        } else {
            var suffix = getLastCharacter(txtName);
            switch(suffix) {
            case 'A':
                if (document.getElementById('validtxtKaptchaAIncorect').style.display == 'none')            
                    document.getElementById(validPrefix + txtName).style.display = visible_table_row;
                break;
            case 'B':
                if (document.getElementById('validtxtKaptchaBIncorect').style.display == 'none')            
                    document.getElementById(validPrefix + txtName).style.display = visible_table_row;
                break;
            case 'C':
                if (document.getElementById('validtxtKaptchaCIncorect').style.display == 'none')            
                    document.getElementById(validPrefix + txtName).style.display = visible_table_row;
                break;
            }
        }            
    }
}

function onBlur(txtName) {
    onBlurOronKeyUp(txtName, true);
}

function onKeyUp(txtName) {
    onBlurOronKeyUp(txtName, false);
}

function onVymazatA() {
    document.getElementById('txtJmenoAPrijmeniA').value = "";
    document.getElementById('txtTelefonA').value = "";
    document.getElementById('txtEmailA').value = emailDefaultValue;
    document.getElementById('tarVzkazA').value = "";
    document.getElementById('txtKaptchaA').value = "";
    
    document.getElementById('validtxtJmenoAPrijmeniA').style.display = 'none';
    document.getElementById('validtxtTelefonNeboEmailA').style.display = 'none';
    document.getElementById('validtarVzkazA').style.display = 'none';
    document.getElementById('validtxtKaptchaA').style.display = 'none';
    document.getElementById('validtxtKaptchaAIncorect').style.display = 'none';
    
    for (var i = 0; i < prvneEditovanoACount; i++)
        prvneEditovanoA[i] = true;
}

function onVymazatB() {
    document.getElementById('txtObchodniNazevB').value = "";
    document.getElementById('txtICOB').value = "";
    document.getElementById('txtAdresaSpolecnostiB').value = "";
    document.getElementById('txtKontaktniPobockaB').value = "";
    document.getElementById('txtJmenoAPrijmeniB').value = "";
    document.getElementById('txtPoziceB').value = "";
    document.getElementById('txtTelefonB').value = "";
    document.getElementById('txtEmailB').value = emailDefaultValue;
    document.getElementById('tarVzkazB').value = "";
    document.getElementById('txtKaptchaB').value = "";
    
    document.getElementById('validtxtObchodniNazevB').style.display = 'none';
    document.getElementById('validtxtICOB').style.display = 'none';
    document.getElementById('validtxtAdresaSpolecnostiB').style.display = 'none';
    document.getElementById('validtxtJmenoAPrijmeniB').style.display = 'none';
    document.getElementById('validtxtTelefonNeboEmailB').style.display = 'none';
    document.getElementById('validtxtKaptchaB').style.display = 'none';
    document.getElementById('validtxtKaptchaBIncorect').style.display = 'none';
    
    for (var i = 0; i < prvneEditovanoBCount; i++)
        prvneEditovanoB[i] = true;
}

function formLideIsVisible() {
    return $("#zalozka-pi").hasClass("active");
}

function reloadKaptcha() {
    var kaptchaSrc = '/views/pages/kaptcha/?' + Math.floor(Math.random()*100);
    
    $('#imgKaptchaA').attr('src', kaptchaSrc);
    $('#imgKaptchaB').attr('src', kaptchaSrc);
    $('#imgKaptchaC').attr('src', kaptchaSrc);
}

function validationABOK() {
    if (formLideIsVisible()) {
        var jmeno = filled('txtJmenoAPrijmeniA');
        var kontakt = kontaktyABOK("A");
        var vzkaz = filled('tarVzkazA');
        var kaptcha = filled('txtKaptchaA');
        
        for (var i = 0; i < prvneEditovanoACount; i++) {
            prvneEditovanoA[i] = false;
        }
        
        if (!jmeno)
            document.getElementById('validtxtJmenoAPrijmeniA').style.display = visible_table_row;
        
        if (!kontakt)
            document.getElementById('validtxtTelefonNeboEmailA').style.display = visible_table_row;
        
        if (!vzkaz)
            document.getElementById('validtarVzkazA').style.display = 'inline';
        
        if (!kaptcha && document.getElementById('validtxtKaptchaAIncorect').style.display == 'none')
            document.getElementById('validtxtKaptchaA').style.display = visible_table_row;
        
        var vyplneno = jmeno && kontakt && vzkaz && kaptcha;
        
        if (!vyplneno)
            return false;
        
        if (!kaptchaAIsValid) {
            document.getElementById('validtxtKaptchaAIncorect').style.display = visible_table_row;
            return false;
        }
        
        onVymazatB();
        return true;
    } else {
        var obchodniNazev = filled('txtObchodniNazevB');
        var ico = filled('txtICOB');
        var adresaSpolecnosti = filled('txtAdresaSpolecnostiB');
        var jmeno = filled('txtJmenoAPrijmeniB');
        var kontakt = kontaktyABOK("B");
        var kaptcha = filled('txtKaptchaB');
        
        for (var i = 0; i < prvneEditovanoBCount; i++) {
            prvneEditovanoB[i] = false;
        }
        
        if (!obchodniNazev)
            document.getElementById('validtxtObchodniNazevB').style.display = visible_table_row;
        
        if (!ico)
            document.getElementById('validtxtICOB').style.display = visible_table_row;
        
        if (!adresaSpolecnosti)
            document.getElementById('validtxtAdresaSpolecnostiB').style.display = visible_table_row;
        
        if (!jmeno)
            document.getElementById('validtxtJmenoAPrijmeniB').style.display = visible_table_row;
        
        if (!kontakt)
            document.getElementById('validtxtTelefonNeboEmailB').style.display = visible_table_row;
        
        if (!kaptcha && document.getElementById('validtxtKaptchaBIncorect').style.display == 'none')
            document.getElementById('validtxtKaptchaB').style.display = visible_table_row;
        
        var vyplneno = obchodniNazev && ico && adresaSpolecnosti && jmeno && kontakt && kaptcha;
        
        if (!vyplneno)
            return false;
        
        if (!kaptchaBIsValid) {
            document.getElementById('validtxtKaptchaBIncorect').style.display = visible_table_row;
            return false;
        }
        
        onVymazatA();
        return true;
    }
}

function validationCOK() {
    var vzkaz = filled('tarVzkazC');
    var kaptcha = filled('txtKaptchaC');
    
    for (var i = 0; i < prvneEditovanoCCount; i++) {
        prvneEditovanoC[i] = false;
    }
    
    if (!vzkaz)
        document.getElementById('validtarVzkazC').style.display = visible_table_row;
    
    if (!kaptcha && document.getElementById('validtxtKaptchaCIncorect').style.display == 'none')
        document.getElementById('validtxtKaptchaC').style.display = visible_table_row;
    
    var vyplneno = vzkaz && kaptcha;
    
    if (!vyplneno)
        return false;
    
    if (!kaptchaCIsValid) {
        document.getElementById('validtxtKaptchaCIncorect').style.display = visible_table_row;
        return false;
    }
    
    return true;
}

function selectStars(rating) {
    for (var i = 0; i <= 5; i++) {
        if ($("#stars").hasClass("star_" + i)) {
            $("#stars").removeClass("star_" + i);
        }
    }
    
    $("#stars").addClass("star_" + rating);
    document.getElementById('txtRating').value = "" + rating;
}

//---------------------------------------------------------------------------
function ajaxFunction(txtName) {
    var xmlHttp;
    
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    } catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    
    xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            var xmlDoc = xmlHttp.responseXML.documentElement;
            var kaptchaValidNode = xmlDoc.getElementsByTagName('kaptchaIsValid');
            var retStr = kaptchaValidNode[0].childNodes[0].nodeValue;
            var retBool = false;
            if (retStr == "true")
                retBool = true;
            
            var suffix = getLastCharacter(txtName);
            switch(suffix) {
            case 'A':
                kaptchaAIsValid = retBool;
                document.getElementById('validtxtKaptchaAIncorect').style.display = (kaptchaAIsValid ? 'none' : visible_table_row);
                break;
            case 'B':
                kaptchaBIsValid = retBool;
                document.getElementById('validtxtKaptchaBIncorect').style.display = (kaptchaBIsValid ? 'none' : visible_table_row);
                break;
            case 'C':
                kaptchaCIsValid = retBool;
                document.getElementById('validtxtKaptchaCIncorect').style.display = (kaptchaCIsValid ? 'none' : visible_table_row);
                break;
            }
        }
    }

    var url = "/views/pages/actionforms/kaptcha_validate.jsp";
    var kaptcha = document.getElementById(txtName).value;
    url += "?kaptcha=" + kaptcha;
    url += "&sid=" + Math.random(); // predejiti cache
    
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
    
    return true;
}

//---------------------------------------------------------------------------

