﻿//popps additional info fields
function popHiddenField(rlb, panel) {

    if (document.getElementById(rlb + "_0").checked) {

        document.getElementById(panel).style.display = "block";

    }
    if (document.getElementById(rlb + "_1").checked) {

        document.getElementById(panel).style.display = "none";

    }
}

//check years range
function isBiggerYear(first, second) {
    f = document.getElementById(first);
    s = document.getElementById(second);

    if (s.value == '') {
        return;
    }

    if (f.value == '') {
        alert('Въведете начална година');
    }

    if (f.value > s.value) {
        alert('Крайната година трябва да е по голяма или същата като началната');
    }
}








function IsEmpty(element, str) {
    el = document.getElementById(element);

    if (el.value == '') {
        alert('Въведете:' + str);
    }

}

function IsEGNFull(element1, element2) {

    el1 = document.getElementById(element1);
    el2 = document.getElementById(element2);

    if (el1.value.length < 9) {

        el1.value = ''
        el2.value = ''


    }
    else {
        UCN = el1.value
        var YY = parseInt(UCN.substr(0, 2), 10);
        var MM = parseInt(UCN.substr(2, 2), 10);
        var DD = parseInt(UCN.substr(4, 2), 10);
        el2.value = DD + '/' + MM + '/' + YY

    }

}


function Digit(thisObj, e, float) {


    var keypress;
    var browser = navigator.appName;

    if (browser == "Microsoft Internet Explorer") { keypress = e.keyCode; }
    else { keypress = e.which; }


    if (float == 0) {
        //Проверка за символи различни от числа
        if (keypress < 48 || keypress > 57) {
            //alert(e.returnValue)
            //e.returnValue=false;

            return false;
        }
    }
}

function trimAll(strValue) {
    var objRegExp = /^(\s*)$/;

    if (objRegExp.test(strValue)) {
        strValue = strValue.replace(objRegExp, '');
        if (strValue.length == 0)
            return strValue;
    }
    objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
    if (objRegExp.test(strValue)) {
        strValue = strValue.replace(objRegExp, '$2');
    }
    return strValue;
}

function CheckFields(element) {
    validation = true;


    document.getElementById(element).className = '';
    if (document.getElementById(element).value == '') {
        document.getElementById(element).className = 'empty';
        validation = false;
    }

    filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filter.test(trimAll(document.getElementById(element).value))) {
        document.getElementById(element).className = 'empty';
        validation = false;
    } else {
        document.getElementById(element).className = '';
    }
    if (!validation) {

        document.getElementById(element).value = '';
    }
    else {
    }



    return;

}

function UCN_onkeypress(e, UCN, element1, element2) {

    el1 = document.getElementById(element1);
    el2 = document.getElementById(element2);
    var keypress;
    var browser = navigator.appName;

    if (browser == "Microsoft Internet Explorer") { keypress = e.keyCode; }
    else { keypress = e.which; }

    if (UCN.length == 9) {
        //проверка за дата в първите 6 цифри
        var YY = parseInt(UCN.substr(0, 2), 10);
        var MM = parseInt(UCN.substr(2, 2), 10);
        var DD = parseInt(UCN.substr(4, 2), 10);
        var res;
        if ((res = validateDateEGN(DD, MM, YY)) != true) {
            if (keypress == 8) { return true; }
            if (res == -1) {
                alert("Моля въведете само цифри в полето за ЕГН!");
                el1.value = ''
                el2.value = ''
                return false;

            }
            else if (res == -2) {
                alert("Невалиден месец (2-3 позиция) в полето за ЕГН!");

                el1.value = ''
                el2.value = ''
                return false;

            }
            else if (res == -3) {
                alert("Невалидно ЕГН!");
                el1.value = ''
                el2.value = ''
                return false;

            } //else if
            else if (res == -4) {
                alert("Трябва да имате навършени 23 години!");
                el1.value = ''
                el2.value = ''
                return false;

            }

            else if (res == -5) {
                alert("Трябва да не сте на повече от 63 години!");
                el1.value = ''
                el2.value = ''
                return false;

            }
        }

    }
    if (keypress == 8) //backspace
    {
        return true;
    }
    if (keypress == 13)//enter
    {
        //e.returnValue=false;			
        return false;

    }
    //Проверка за символи различни от числа
    if (keypress < 48 || keypress > 57) {
        //e.returnValue=false;
        return false;

    }
    //Проверка за контролно число
    var strError;
    if (UCN.length == 9) {
        if (strError = CheckControlDigit(UCN, keypress)) {
            alert(strError);
            el1.value = ''
            el2.value = ''
            //e.returnValue=false;
            return false;

        }
        else {
            UCN = UCN + CheckControlDigit(UCN, keypress);
            //parent.window.open("checkUCN.asp?UCN=" + UCN,"null","height=300,width=500,top=0,left=250,scrollbars=no,location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=no,fullscreen=no,replace=true");
        }
        return;
    }
    if (UCN.length > 9) {
        alert("Невалидно ЕГН!");
        el1.value = ''
        el2.value = ''
        return false;
    }

}

function CheckControlDigit(Checked, eventKeyCode) {
    var sum = 0;
    var mn = new Array(2, 4, 8, 5, 10, 9, 7, 3, 6);
    for (i = 0; i < 9; i++)
        sum += Checked.charAt(i) * mn[i];
    var ost = sum % 11;
    if (ost == 10) ost = 0;
    if (ost != eventKeyCode - 48)
        return ("Моля въведете валидено ЕГН!");

    return (null);
}

function validateDateEGN(day, month, year) {
    var nDays = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var today = new Date;
    var todayD = today.getDate();
    var todayM = today.getMonth() + 1;
    var todayY = today.getFullYear();
    today = null;

    //alert(day+" "+month+" "+year +" today: "+todayD+" "+todayM+" "+todayY)	
    if (isNaN(day) || isNaN(month) || isNaN(year))
        return -1; //не е цифра
    if (month > 40 && month < 53)//ново ЕГН - след 2000
    {
        year += 2000;
        month -= 40;
    } //if
    else //1900
    {
        year += 1900;
    } //else

    //alert(day+" "+month+" "+year +" today: "+todayD+" "+todayM+" "+todayY);
    if (month < 1 || month > 12)
        return -2; //невалиден месец
    if (day < 1 || day > nDays[month - 1])
        return -3; //невалиден ден

    //под 18 години
    if (year > (todayY - 18)) {
        //alert((todayY-18)-year)
        return -4;
    }
    else if (year == (todayY - 18) && month > todayM) {
        return -4;
    }
    else if (year == (todayY - 18) && month == todayM && day > todayD) {
        return -4;
    }
    // над 63 години

    if (year < (todayY - 63)) {
        return -5;
    }
    else if (year == (todayY - 63) && month > todayM) {
        return -5;
    }
    else if (year == (todayY - 63) && month == todayM && day > todayD) {
        return -5;
    }

    return true;
} //validateDateEGN() Извършва се проверка и за възрастта на клиента, анализира се върнатият параметър!!!


function checkLeapYear(y) {
    return (y % 4 == 0) ? ((y % 100 == 0) ? ((y % 400 == 0) ? 1 : 0) : 1) : 0;
}

function isDate(strDate) {
    if (strDate.length == 10) {

        var d = strDate.split("/");

        var dayToCheck = d[0];
        var monthToCheck = d[1];
        var yearToCheck = d[2];
        var strErr = "";

        if ((strErr = CheckIsAllDigit(dayToCheck)) ||
	   (strErr = CheckIsAllDigit(monthToCheck)) ||
	   (strErr = CheckIsAllDigit(yearToCheck))) {
            alert(strErr);
            return false;
        }

        strErr = "Грешна дата";

        if (dayToCheck == 0 || dayToCheck > 31 || monthToCheck > 12 ||
		monthToCheck == 0 || yearToCheck < 1900) {
            alert(strErr);
            return false;
        }

        if (dayToCheck == 31 && (monthToCheck == 4 || monthToCheck == 6 || monthToCheck == 9 || monthToCheck == 11)) {
            alert(strErr);
            return false;
        }
        if (monthToCheck == 2)
            if ((checkLeapYear(yearToCheck) && dayToCheck > 29) ||
		    (!checkLeapYear(yearToCheck) && dayToCheck > 28)) {
            alert(strErr);
            return false;
        }

        return true;
    }
    else
        return true;
}



function CheckMail(element) {

    var el = document.getElementById(element);

    if (el.value != '') {

        filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if (!filter.test(trimAll(document.getElementById(element).value))) {

            alert('Невалиден E-mail!');
            el.value = '';
        }
    }
}
