function is_alnum(str) {
    return (str.search("^[a-zA-Z0-9]+$") != -1);
}

function is_empty(str) {
    return (str.search("^[ ]*$") != -1);
}

function is_email(str) {    
    return (str == "" || str.search("^.+@.+\\..+$") != -1);
}

function is_num(str) {
	return (str.search("^[0-9]+$") != -1);
}

function is_float(str) {
	return (str.search("^[0-9]*[.,]{0,1}[0-9]+$") != -1);
}

function is_zip(str) {
	return (str.search("^[0-9]{3}[ ][0-9]{2}$") != -1);
}

function is_logon(str){
    return (str.length > 4 && is_alnum(str));
}

function lightElement(element) {
	element.style.borderColor = "green"
	element.style.borderWidth = "2px";
	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í platná emailová adresa.\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 validateNum(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) && !is_num(name.value)) {
            text += values[i] + " není číslo.\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) {
            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 'num':
            text = validateNum(names, values);
            break;
        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 validateAndShowRange(names, values, min, max){
    var text = ""; 
    var i;
    var isFocus = false;
        
    for (i=0; i<names.length; i++) {

        var name = document.getElementById(names[i]);

        if (!is_num(name.value) || name.value < min || name.value > max) {
            text += values[i] + " není číslo v rozsahu " + min + "-" + max + ".\n";            
			lightElement(name);
			
            if (!isFocus) {
                name.focus();
                isFocus = true;
            }            
        } else {
		     darkElement(name);
		}
	}
  
    if (text == "") {
        return true;
    }
            
    window.alert(text);
    return false;
}     

function myValidateAndShowRange(value, title, min, max){
    var text = ""; 
        
    if (value < min || value > max) {
        text = title + " není v rozsahu " + min + "-" + max + ".\n";            
    }
  
    if (text == "") {
        return true;
    }
            
    window.alert(text);
    return false;
} 

function validateAndShowEven(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 != '' && name.value % 2 != 0) {
            text += values[i] + " není sudé číslo.\n";            
			lightElement(name);
			
            if (!isFocus) {
                name.focus();
                isFocus = true;
            }            
        } else {
		     darkElement(name);
		}
	}
  
    if (text == "") {
        return true;
    }
    return false;
}

function validateAndShowMin(names, values, min){
    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) && (!is_num(name.value) || name.value < min)) {
            text += values[i] + " nesmí být menší než " + min + ".\n";            
			lightElement(name);
			
            if (!isFocus) {
                name.focus();
                isFocus = true;
            }            
        } else {
		     darkElement(name);
		}
	}
  
    if (text == "") {
        return true;
    }
            
    window.alert(text);
    return false;
} 

