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 = "#C80505"
	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í 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] + is_request;            
			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 validateFloat(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_float(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 'float':
            text = validateFloat(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 validateAndShowRangeFloat(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_float(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;
    }
            
    window.alert(text);
    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;
} 

