﻿function validateAlphaNumeric(obj) {
    var reg = /^[a-zA-Z0-9_-]*$/;
    if (!reg.test(obj.value)) {
        setValidationFailed(obj, "Krivo");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function removeNonAlphaNumeric(obj) {
    obj.value = obj.value.replace(/[^a-zA-Z0-9čČćĆžŽšŠđĐ \t_-]/g, "");
}
function removeNonNumeric(obj) {
    obj.value = obj.value.replace(/[^0-9]/g, "");
}
function isNumeric(obj) {
    var reg = /^[0-9]*$/;

    if (!reg.test(obj.value)) {
        setValidationFailed(obj, "Dozvoljene su samo numeričke vrijednosti");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function validateUsername(obj, check) {
    if (check) {
        setValidationOk(obj);
        return true;
    }
    else {
        setValidationFailed(obj, "Korisničko ime nije slobodno");
        return false;
    }
}
function validatePasswordStrength(obj) {
    var strongRegex = /^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).*$/;
    var mediumRegex = /^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$/;
    var enoughRegex = /(?=.{6,}).*/;

    if (obj.value.length == 0) {
        obj.style.backgroundColor = "";
        obj.parentNode.getElementsByTagName("span")[0].innerHTML = "";
        return true;
    }
    else if (!enoughRegex.test(obj.value)) {
        obj.style.backgroundColor = "#F8A28F";
        obj.parentNode.getElementsByTagName("span")[0].innerHTML = 'Prekratka lozinka (minimum 6 znakova)';
        return false;
    }
    else if (strongRegex.test(obj.value)) {
//        obj.style.backgroundColor = "#B5D178";
        obj.parentNode.getElementsByTagName("span")[0].innerHTML = '<span style="color:#B5D178">Jaka lozinka</span>';
        return true;
    }
    else if (mediumRegex.test(obj.value)) {
//        obj.style.backgroundColor = "#FFE375";
        obj.parentNode.getElementsByTagName("span")[0].innerHTML = '<span style="color:#FFE375">Srednja lozinka</span>';
        return true;
    }
    else {
//        obj.style.backgroundColor = "#F8A28F";
        obj.parentNode.getElementsByTagName("span")[0].innerHTML = '<span style="color:#F8A28F">Slaba Lozinka</span>';
        return true;
    }
}
function validateEmail(obj, check) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;

    if (reg.test(obj.value) || obj.value == "") {
        if (check) {
            setValidationOk(obj);
            return true;
        }
        else {
            setValidationFailed(obj, "Korisnik sa ovim emailom već postoji");
            return false;
        }
    }
    else {
        setValidationFailed(obj, "Neispravna email adresa");
        return false;
    }
}
function validateZip(obj) {
    var reg = /^[0-9]*$/;

    obj.value = obj.value.replace(/[^0-9]/g, "");

    if (!reg.test(obj.value) || (obj.value.length != 5 && obj.value.length != 0)) {
        setValidationFailed(obj, "Neispravan poštanski broj");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function validatePhoneNumber(obj) {
    var reg = /^[0-9]*$/;

    obj.value = obj.value.replace(/[^0-9]/g, "");

    if (!reg.test(obj.value) || ((obj.value.length < 6 || obj.value.length > 7) && obj.value.length != 0)) {
        setValidationFailed(obj, "Neispravan broj telefona");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function validateRazred(obj) {
    if (obj == null) return true;
    
    var reg = /^[1-8]*$/;
    if (!reg.test(obj.value)) {
        setValidationFailed(obj, "Neispravan razred");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function validateOdjeljenje(obj) {
    if (obj == null) return true;
    
    var reg = /^[a-zA-Z]*$/;
    if (!reg.test(obj.value)) {
        setValidationFailed(obj, "Neispravno odjeljenje");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}
function isEmpty(obj) {
    if (obj == null) return true;
    
    if(obj.value == "") {
        setValidationFailed(obj, "Obavezno polje");
        return true;
    }
    else {
        setValidationOk(obj);
        return false;
    }
}
function isSelected(obj) {
    if (obj == null) return true;

    if (obj.value == "" || obj.value == "0") {
        setValidationFailed(obj, "Obavezno polje");
        return false;
    }
    else {
        setValidationOk(obj);
        return true;
    }
}

function setValidationFailed(obj, message) {
    obj.className = "val_failed";
    obj.parentNode.getElementsByTagName("span")[0].innerHTML = message;
}
function setValidationOk(obj) {
    obj.className = "";
    obj.parentNode.getElementsByTagName("span")[0].innerHTML = "";
}
