//var regemail = new RegExp('^[+]*[_a-z0-9\-]+(\.[_a-z0-9\-]+)*@([0-9a-z][0-9a-z\-]*\.)+[a-z]{2,4}$', 'i');
var regemail = /^[+]*[_a-z0-9-]+(\.[_a-z0-9-]+)*@([0-9a-z][0-9a-z-]*\.)+[a-z]{2,4}$/i;

function check_Form(formname) {
    ctrl = document.forms[formname];
    var chckdata;
    eval('chckdata = '+formname+';');
    return FormControl(ctrl, chckdata);
}

function FormControl(ctrl,FC){
    var Message,Field,value,i;
    var RetVal=true;
    var result
    
    for (i=0; i<FC.length && RetVal; i++){
        checked = false;
        index = '';
        value = '';
        Field = eval("ctrl."+FC[i][0]);
        if (Field) {
            if (Field.type == 'select-one') {
                index = Field.selectedIndex;
                value = Field.options[Field.selectedIndex].value;
            } else if (!Field.type) {
                if (Field.length) {
                    for (y=0; y<Field.length; y++) {
                        if (Field[y].checked) {
                            index = y;
                            value = Field[y].value;
                            checked = true;
                            y = Field.length + 1;
                        }
                    }
                }
            } else {
                value = Field.value;
                checked = Field.checked;
            }
            result = eval(FC[i][1]);
            if(!result) {
                Message=FC[i][2];
                RetVal=false;
            }
        }
    }

    if(!RetVal){
        alert(Message);
        if (Field.style && Field.style.display != 'none') {
            if (!Field.type || (Field.type == 'undefined')) {
                if (Field.length != 'undefined') {
                    Field[0].focus();
                }
            } else Field.focus();
            if (Field.type=="text" || Field.type=="password"){
                Field.select();
            }
        }
    }
    return RetVal;
}

//vycisti obsah pole - pokud zacina na nedelitelnou mezeru
function clearContent(id) {
    var x = document.getElementById(id);
    if (x) {
        if (x.value) {
            if ( (x.value.substring(0,1)=='\u00A0') || (x.value.substring(0,1) == ' ')) {
                x.value = '';
            }
        }
    }
}

//vycisti obsah pole - bezpodminecne
function clearItem(formname, itemname) {
    var ctrl = document.forms[formname];
    var x = eval("ctrl."+itemname);
    if (x) {
        x.value = '';
    }
}

//kopiruje obsah pole do jineho - bezpodminecne
function copyItem(formname, source, target) {
    var ctrl = document.forms[formname];
    var x = eval("ctrl."+source);
    var y = eval("ctrl."+target);
    if (x && y) {
        y.value = x.value;
    }
}

function isValidCSAno(csano) {
    //prvnich 7 pozic modulo 7 plus 2 musi dat cislo na 8. pozici
    var base = parseInt(csano.substr(0, 7), 10);
    var rest = base%7;
    var check = parseInt(csano.substr(7, 1), 10);
    return ((rest+2) === check);
}

function trim(data) {
    var reg = new RegExp('^[\\x20|\\xA0|\\x0A|\\x0D|\\x09]*((.*[^\\x20|\\xA0|\\x0A|\\x0D|\\x09])[\\x20|\\xA0|\\x0A|\\x0D|\\x09]*)?$', 'gm');
    return data.replace(reg, '$2');
}

function rtrim(data) {
    var w_space = String.fromCharCode(32);
    var v_length = data.length;
    var strTemp = '';
    if (v_length < 0) return '';
    var iTemp = v_length - 1;
    while (iTemp > -1) {
        if (data.charAt(iTemp) == w_space){
        } else {
            strTemp = data.substring(0,iTemp +1);
            break;
        }
        iTemp = iTemp-1;
    }
    return strTemp;
}

function ltrim(VALUE) {
    var w_space = String.fromCharCode(32);
    if(v_length < 1) {
        return"";
    }
    var v_length = VALUE.length;
    var strTemp = "";
    var iTemp = 0;
    while(iTemp < v_length) {
        if(VALUE.charAt(iTemp) == w_space) {
        } else {
            strTemp = VALUE.substring(iTemp,v_length);
            break;
        }
        iTemp = iTemp + 1;
    }
    return strTemp;
}