var user_fname_ok = 0;
var user_lname_ok = 0;
var user_type = 'admin';

function userShortLName() {
    var l_name = document.getElementById('user_l_name').value.trim();
    if (user_lname_ok && l_name.length < 4 && l_name != user_lname_old)
        return confirm (user_lname_short);
    else return true;
}

function userShortFName() {
    var f_name = document.getElementById('user_f_name').value.trim();
    if (user_fname_ok && f_name.length < 4 && f_name != user_fname_old)
        return confirm (user_fname_short);
    else return true;
}

function userVDCheckFName(field_id, is_required) {
    //var regexp = new RegExp('^([A-Za-z'+vd_lang_letters_upper+vd_lang_letters_lower+']{1}[a-z'+vd_lang_letters_lower+']+[ ]{1})?[A-Za-z'+vd_lang_letters_upper+vd_lang_letters_lower+']{1}[a-z'+vd_lang_letters_lower+']{1,50}$');
    var regexp = new RegExp('');
    var is_error = userVDCheckText (field_id, is_required, 2, 0, regexp, user_error_fname);
    if (is_error == '')
        user_fname_ok = 1;
    return is_error;
}

function userVDCheckLName(field_id, is_required) {
    //var regexp = new RegExp('^([A-Za-z'+vd_lang_letters_upper+vd_lang_letters_lower+']{1}[a-z'+vd_lang_letters_lower+']+[\- ]{1,3})?[A-Za-z'+vd_lang_letters_upper+vd_lang_letters_lower+']{1}[a-z'+vd_lang_letters_lower+']{1,50}$');
    var regexp = new RegExp('');
    var is_error = userVDCheckText (field_id, is_required, 2, 0, regexp, user_error_lname);
    if (is_error == '')
        user_lname_ok = 1;
    return is_error;
}

function userVDCheckCName(field_id, is_required) {
    //var regexp = new RegExp('^[A-Za-z0-9&./"\'_ \-,'+vd_lang_letters_lower+vd_lang_letters_upper+']{3,70}$');
    var regexp = new RegExp('');
    return userVDCheckText (field_id, is_required, 2, 0, regexp, user_error_cname);
}

function userVDMarkField(field_obj, status, show_error_text) {
    switch (status) {
        case 0:
            field_obj.removeAttribute('title');
            field_obj.style.borderColor = '';
            field_obj.style.borderWidth = '';
            if(field_obj.getAttribute('type') == 'select-multiple' || field_obj.getAttribute('type') == 'select')
                field_obj.style.backgroundColor = '';
        break;
        case 1:
            field_obj.setAttribute('title', show_error_text);
            field_obj.style.borderColor = 'red';
            field_obj.style.borderWidth = '1px';
            if(field_obj.getAttribute('type') == 'select-multiple' || field_obj.getAttribute('type') == 'select')
                field_obj.style.backgroundColor = 'red';
        break;
    }
}



function UserFileCheckType(fName, checkArray) {
    var last = fName.lastIndexOf('.');
    if (last < 0)
        return false;
    var checkType = fName.substring(last+1, fName.length).toLowerCase();
    if(checkArray != undefined) {
        for (var c=0; c<checkArray.length; c++) {
            if (checkArray[c] == checkType)
                return true;
        }
    }
    return false;
}

function UserBankAccount(obj) {
    var bank_select = document.getElementById('user_c_bank_id');
    var bank_code = obj.value.substring(4, 9);
    for (var c=0; c<bank_select.options.length; c++) {
        if (bank_code == bank_select.options[c].text.substring(0,5)) {
            bank_select.selectedIndex = c;
            break;
        }
    }
}


// login form
function m_user_GeneratePassword() {
    var pass = '';
    for(c=0;c<8;c++) {
        pass = pass + Math.floor(Math.random() * 10);
    }
    document.getElementById('user_l_password').value = pass;
}

function m_user_OpenPassword(url) {
    showModalDialog(url,null,'dialogLeft:300;dialogTop:200;dialogWidth:200px;dialogHeight:120px;resizable:0;status:0;scrollbars:0;help:0');
}

function userVDCheckLoginAdm (is_required, is_old) {
    var site_selected = 1;
    var error3 = '';
    var error = '';
    var user_login_obj = document.getElementById('user_l_username');
    var user_password_obj = document.getElementById('user_l_password');
    var user_sites_obj = document.getElementById('user_l_sites');
    var user_login = user_login_obj.value.trim();
    var user_password = user_password_obj.value.trim();
    var check_site = user_sites_obj.type != 'hidden';
    if (check_site) userVDMarkField(user_sites_obj, 0);
    userVDMarkField(user_login_obj, 0);
    userVDMarkField(user_password_obj, 0);
        
    if (is_required || user_login.length > 0 || user_password.length > 0) {
        if (check_site) {
            site_selected = 0;
            for (var c=0; c<user_sites_obj.length; c++) {
                if (user_sites_obj[c].selected) {
                    site_selected = 1;
                    break;
                }
            }
        }
        if (!site_selected || user_login.length == 0 || (!is_old && user_password.length == 0)) {
            if (check_site && !site_selected) userVDMarkField(user_sites_obj, 1, '');
            error3 = user_lconnect_error_all+'\n';
            is_required = 1;
        }
        
        var regexp = new RegExp('^[A-Za-z0-9@._@-]{3,55}$', 'i');
        error += userVDCheckText ('user_l_username', is_required, 3, 0, regexp, user_error_lconnect_login);
        
        if (is_old == 0 || user_password.length > 0) {
            var regexp = new RegExp('^[A-Za-z0-9@&._!@#$*\-]{'+user_lconnect_passw_min+',20}$', 'i');
            is_required = (is_required && is_old == 0 ? 1 : 0);
            error += userVDCheckText ('user_l_password', is_required, user_lconnect_passw_min, 0, regexp, user_error_lconnect_passw);
        }
        return error+error3;
    } else return '';
    
}

function userVDCheckLoginUser (is_required) {
    var error = '';
    var regexp = new RegExp('^[A-Za-z0-9@._@-]{3,55}$', 'i');
    error += userVDCheckText ('user_l_username', 1, 3, 0, regexp, user_error_lconnect_login);
    var passw1 = document.getElementById('user_l_password');
    var passw2 = document.getElementById('user_l_password_2');
    if (is_required || (passw1.value.length > 0) || (passw2.value.length > 0)) {
        var regexp = new RegExp('^[A-Za-z0-9@&._!@#$*]{'+user_lconnect_passw_min+',20}$', 'i');
        var tmp_error = '';
        tmp_error = userVDCheckText ('user_l_password', 1, user_lconnect_passw_min, 0, regexp, user_error_lconnect_passw);
        if (tmp_error)
            error += user_error_lconnect_passw[5]+'\n';
        tmp_error = userVDCheckText ('user_l_password_2', 1, user_lconnect_passw_min, 0, regexp, user_error_lconnect_passw);
        if (tmp_error)
            error += user_error_lconnect_passw[6]+'\n';
        
        if (passw1.value != passw2.value) {
            error += user_error_lconnect_passw[4] + '\n';
            userVDMarkField(passw1, 1, user_error_lconnect_passw[4]);
            userVDMarkField(passw2, 1, user_error_lconnect_passw[4]);
        }
    }
    return error;
}

function userVDCheckText (field_id, is_required, l_min, l_max, regexp, error_text_array) {
    var obj = document.getElementById(field_id);
    var obj_val = obj.value.trim();
    var error_msg = '';
    userVDMarkField(obj, 0);
    if (is_required && obj_val.length == 0)
        error_msg = error_text_array[0];
    else if (obj_val.length > 0 && obj_val.length < l_min)
        error_msg = error_text_array[1];
    else {
        if (!regexp.test(obj_val))
           error_msg = error_text_array[3];
    }
    if (error_msg) {
        userVDMarkField(obj, 1, error_text_array[4]);
        return error_msg + '\n';
    }
    return '';
}

function userVDCheckPhone(field_id, show_error_text, is_required, error_text) {
    var regexp = /[0-9 +()]{3,14}$/;
    return VDReturnValue(regexp, field_id, show_error_text, 'phone', is_required, error_text);
}

// ---------------- address functions-------------------------------
function selectFill(docID,fillArray,selected) {
	var selectedNr = 0;
    selectField = document.getElementById(docID);
	selectField.options.length=fillArray.length;
	for (i=0; i<fillArray.length; i++) {
		selectField.options[i] = new Option(fillArray[i][0],fillArray[i][1],true,true);
        if (selected == fillArray[i][1]) selectedNr = i;
	}
    selectField.options[selectedNr].selected = true;
}
var user_address_key_pre;
var user_address_old_region = 0;
var user_address_old_city = 0;
var user_address_old_small = 0;
var user_city_not_required = 0;

function userReturnAddress (country_id, city_id, post_index, address_value) {
    user_address_old_city = city_id;
    var country = document.getElementById('c_address_country_id');
    if (country.type != 'hidden') {
        for (var c=0; c<country.options.length; c++) {
            if (country.options[c].value == country_id)
                country.options[c].selected = true;
        }
    }
    userChangeCountry('c_');
    document.getElementById('c_address_value').value = address_value;
    document.getElementById('c_address_index').value = post_index;
}

// kreipiasi i iframe kad pakeistu miestu arba regionu sarasa
// jei nenaudojami miestai ir regionai, leidzia irasyt adresa, jei pasirinkta valstybe
function userChangeCountry(key) {
    user_address_key_pre = key;
    var country_obj = document.getElementById(key+'address_country_id');
    if (user_city_not_required && !user_show_region)
    	userAddressDisable (country_obj, key+'address_value');
    if (user_city_not_required == 0 || user_type == 'admin' || user_show_region)
    	document.getElementById('ifr_user_info').src = user_address_url + '&get_type='+(user_show_region ? 'region' : 'city')+'&country_id='+(country_obj.type == 'hidden' ?  country_obj.value : country_obj.options[country_obj.selectedIndex].value);
}
// kreipiasi i iframe kad pakeistu miestu sarasa
// jei nenaudojami miestai, leidzia irasyt adresa, jei pasirinktas regionas
function userChangeRegion(key) {
	var region_obj = document.getElementById(key+'address_region_id');
	if (user_city_not_required)
    	userAddressDisable (region_obj, key+'address_value')
	if (user_city_not_required == 0 || user_type == 'admin' ) {
    	user_address_key_pre = key;
        document.getElementById('ifr_user_info').src = user_address_url + '&get_type=city&region_id='+region_obj.options[region_obj.selectedIndex].value;
    }
}
// jei naudojami miesteliai, kreipiasi i iframe kad pakeistu miesteliu sarasa
// leidzia irasyt adresa, jei pasirinktas miestas
function userChangeCity(key) {
    var city_obj = document.getElementById(key+'address_city_id');
    var disabled_val;
    
    //userAddressDisable (city_obj, key+'address_value');
    	//var disabled_val = (city_obj.options[city_obj.selectedIndex].value == 0);
    	//document.getElementById(key+'address_value').disabled = disabled_val;
    //}
    if (user_show_small) {
    	document.getElementById(key+'address_small_name').disabled = disabled_val;
    	document.getElementById('ifr_user_info').src = user_address_url + '&get_type=small&city_id='+city_obj.options[city_obj.selectedIndex].value;
   	}
}
// leidzia ar neleidzia rasyt i adreso lauka, priklausomai nuo upper_object pasirinktos reiksmes
function userAddressDisable (upper_obj, address_key) {
	if (user_type == 'admin' && user_city_not_required || upper_obj.type == 'hidden')
		var disabled_val = false;
	else 
		var disabled_val = (upper_obj.options[upper_obj.selectedIndex].value == 0);
   	document.getElementById(address_key).disabled = disabled_val;
}

// grazina iframe rezultata - regionai
function userChangeRegionList(fillArray) {
    selectFill(user_address_key_pre+'address_region_id',fillArray,user_address_old_region);
    userChangeRegion(user_address_key_pre);
}
// grazina iframe rezultata - miestai
function userChangeCityList(fillArray) {
    selectFill(user_address_key_pre+'address_city_id',fillArray,user_address_old_city);
    userChangeCity(user_address_key_pre);
}
// grazina iframe rezultata - miesteliai
function userChangeSmallList(fillArray) {
    selectFill(user_address_key_pre+'address_small_id',fillArray,user_address_old_small);
}

// tikrina ivedama miestelio pavadinima
function userSmallCheck (key) {
    var small_text = document.getElementById(key+'address_small_name');
    if (small_text.value.trim() > '') {
        user_errors += VDCheckNumbersLettersEtc(key+'address_small_name', user_errors, 0, 3, 255, '\\\- \\\'', user_small_error_text);
        var small_obj = document.getElementById(key+'address_small_id');
        if (small_obj.options.length > 1) {
            for (i=1; i<small_obj.options.length; i++)
                if (small_obj.options[i].text == small_text.value) {
                    small_obj.selectedIndex = i;
                    small_text.value = '';
                    break;
                }
        }
    }
}
