function is_alnum(str) {
    if (str.search("^[a-zA-Z0-9]+$") != -1) 
        return true
    else
        return false;
}

function is_empty(str) {
    if (str.search("^[ ]*$") != -1)
        return true
    else
        return false;
}

function is_email(str) {    
    if (str == "" || str.search("^.+@.+\\..+$") != -1)
        return true
    else
        return false;
}

function is_num(str) {
    if (str.search("^[0-9]+$") != -1)
        return true;
    else
        return false;
}

function is_float(str) {
    if (str.search("^[0-9]*[.,]{0,1}[0-9]+$") != -1)
        return true;
    else
        return false;
}

function is_zip(str) {
    if (str.search("^[0-9]{3}[ ][0-9]{2}$") != -1)
        return true;
    else
        return false;
}

function is_logon(str){
    if (str.length > 4 && is_alnum(str))
        return true;
    else
        return false;    
}

function lightElement(element) {
    element.style.borderColor = "red"
    element.style.borderWidth = "2";
    element.style.borderStyle = "solid";
}

function darkElement(element) {
    element.style.borderColor = ""
    element.style.borderWidth = "";
    element.style.borderStyle = "";
}

function validateEmail(names, values){

    var text = ""; 
    var i;
    var isFocus = false;
        
    for (i=0; i<names.length; i++){

        var name = document.getElementById(names[i]);
   
        if (!is_email(name.value)) {
            text += values[i] + " není email.\n";            
            lightElement(name);
			
            if (!isFocus){
                name.focus();
                isFocus = true;
            }
        }
        else
            darkElement(name);
    }

    return text;
}

function validateEmpty(names, values){

    var text = ""; 
    var i;
    var isFocus = false;
        
    for (i=0; i<names.length; i++){

        var name = document.getElementById(names[i]);
   
        if (is_empty(name.value)) {
            text += values[i] + " je vyžadováno.\n";            
            lightElement(name);
			
            if (!isFocus){
                name.focus();
                isFocus = true;
            }
        }
        else
            darkElement(name);
    }

    return text;
}

function validateCombo(names, values){

    var text = ""; 
    var i;
    var isFocus = false;
        
    for (i=0; i<names.length; i++){

        var name = document.getElementById(names[i]);
   
        if (name.value == 0 || name.value == -1) {
            text += values[i] + " je vyžadováno.\n";            
            lightElement(name);
			
            if (!isFocus){
                name.focus();
                isFocus = true;
            }
        }
        else
            darkElement(name);
    }

    return text;
}

function validateLogon(names, values){

    var text = ""; 
    var i;
    var isFocus = false;
        
    for (i=0; i<names.length; i++){

        var name = document.getElementById(names[i]);
   
        if (!is_logon(name.value)) {
            text += values[i] + " musí obsahovat pouze alfanumerické znaky.\n";
            text += values[i] + " musí mít alespoň 5 znaků.\n";
            lightElement(name);
			
            if (!isFocus){
                name.focus();
                isFocus = true;
            }
        }
        else
            darkElement(name);
    }

    return text;
}

function validateEqual(names, values){

    var text = ""; 
    var name1 = document.getElementById(names[0]);
    var name2 = document.getElementById(names[1]);
    
    if (name1.value != name2.value){
        text += values[0] + " a " + values[1] + " se neshodují.\n";
        
        lightElement(name1);
        lightElement(name2);
        
        name1.focus();
    }
    else{
        darkElement(name1);
        darkElement(name2);
    }

    return text;
}

function validateAndShow(names, values, type){
    var text = "";

    switch(type){    
        case 'email':
            text = validateEmail(names, values);
            break;
        case 'logon':
            text = validateLogon(names, values);
            break;
        case 'equal':
            text = validateEqual(names, values);
            break;
        case 'combo':
            text = validateCombo(names, values);
            break;
        default:
            text = validateEmpty(names, values);
            break;            
    }
  
    if (text == "")
        return true;
            
    window.alert(text);
    return false;
}

function checkFormFirm() {
    var val_empty = new Array("login_name", "pswd", "pswd2");
    var val_empty_desc = new Array("Jméno", "Heslo", "Potvrzení hesla");
    var val_equal = new Array("pswd", "pswd2");
    var val_equal_desc = new Array("Heslo", "Potvrzení hesla");

    var val_email = new Array("rperson_email");
    var val_email_desc = new Array("Email");            
    var val_empty2 = new Array("rperson_name", "rperson_email", "verify_key");
    var val_empty_desc2 = new Array("Jméno", "Email", "Číslo z obrázku");

    var go = validateAndShow(val_empty2, val_empty_desc2) && validateAndShow(val_email, val_email_desc, 'email');
    
    return go && validateAndShow(val_empty, val_empty_desc, 'logon') && validateAndShow(val_equal, val_equal_desc, 'equal');
    
    if (document.getElementById("login").value != "" ||
        document.getElementById("pswd").value != "" ||
        document.getElementById("pswd2").value != "")
        return go && validateAndShow(val_empty, val_empty_desc, 'logon') && validateAndShow(val_equal, val_equal_desc, 'equal');
    else
        return true;
}

function checkFormFirmEdit() {
    var val_empty = new Array("login_name");
    var val_empty_desc = new Array("Jméno");            
    var val_equal = new Array("pswd", "pswd2");
    var val_equal_desc = new Array("Heslo", "Potvrzení hesla");

    var val_email = new Array("rperson_email");
    var val_email_desc = new Array("Email");            
    var val_empty2 = new Array("rperson_name", "rperson_email", "verify_key");
    var val_empty_desc2 = new Array("Jméno", "Email", "Číslo z obrázku");

    var go = validateAndShow(val_empty2, val_empty_desc2) && validateAndShow(val_email, val_email_desc, 'email');
    
    return go && validateAndShow(val_empty, val_empty_desc, 'logon') && validateAndShow(val_equal, val_equal_desc, 'equal');
    
    if (document.getElementById("login").value != "" ||
        document.getElementById("pswd").value != "" ||
        document.getElementById("pswd2").value != "")
        return go && validateAndShow(val_empty, val_empty_desc, 'logon') && validateAndShow(val_equal, val_equal_desc, 'equal');
    else
        return true;
}

function checkFormSendUs() {
    var val_empty = new Array("contact_name", "contact_email", "contact_text", "verify_key");
    var val_empty_desc = new Array("Vaše jméno", "Váš email", "Sdělení", "Číslo z obrázku");
    var val_email = new Array("contact_email");
    var val_email_desc = new Array("Váš email");

    return validateAndShow(val_empty, val_empty_desc) && validateAndShow(val_email, val_email_desc, 'email');
}

function checkFormAddDemand(){
    var val_empty = new Array("subject", "text", "name", "firm", "city", "email", "tel", "verify_key");
    var val_empty_desc = new Array("Nadpis", "Text", "Jméno", "Firma", "Město", "Email", "Telefon", "Číslo z obrázku");
    var val_email = new Array("email");
    var val_email_desc = new Array("Email");

    return validateAndShow(val_empty, val_empty_desc) && validateAndShow(val_email, val_email_desc, 'email');
}

function validationCategoryTree(){
    var i;
    var formElements = document.getElementsByTagName('input');
    
    for(i=0; i<formElements.length; i++){
        if (formElements[i].type=="checkbox" && formElements[i].checked && (formElements[i].id.substring(8)).length == 6){
            return true;
        }
    }

    if (document.getElementById("countCategoryCat") != null && document.getElementById("countCategoryCat").value > 0){
        return true;
    }else if (document.getElementById("countCategoryCat") == null){
        return false;
    }

    return false;
}        

function checkFormSearch()
{
    darkElement(document.getElementById("search"));
    search = document.getElementById("search").value;
    if (search.length < 2)
    {
        lightElement(document.getElementById("search"));
        alert("Hledaný řetězec musí obsahovat alespoň 2 písmena!");
        return false;
    }
    return true;
}
var priznak = true;
document.onkeydown = keydown;

function focus()
{
    priznak = false;
}

function blur()
{
    priznak = true;
}

function keydown()
{
    if (priznak)
        document.getElementById("search").focus();
}

