"use strict";

var ACTIONS = {

    submited: false,
    filter_category: '',
    filter_city: '',
    filter_province: '',

    filter_minus: function (event, a) {
        event.preventDefault();

        if (a.data('type') == 'category') {
            $('.section-filters input#job_filters_categories_' + a.data('id')).prop('checked', false);
        } else if (a.data('type') == 'tag') {
            $('.section-filters input#job_filters_keywords_' + a.data('id')).prop('checked', false);
        } else if (a.data('type') == 'city') {
            $('#search_place_input').val('');
            $('input[name="search_place_input"]').val('');
            $('.section-filters input#job_filters_cities_' + a.data('id')).prop('checked', false);
        } else if (a.data('type') == 'country') {
            $('.section-filters input#job_filters_countries_' + a.data('id')).prop('checked', false);
        } else if (a.data('type') == 'province') {
            $('.section-filters input#job_filters_provinces_' + a.data('id')).prop('checked', false);
        }
        a.remove();
        $('.section-filters button[type="submit"]').click();
    },

    filter_pager: function (event, a) {
        event.preventDefault();

        if (!a.parents('.page-item').hasClass('disabled')) {
            $('.section-filters #filter_pager').val(a.data('page'));
            $('.section-filters button[type="submit"]').click();
        }
    },

    filters_reset: function () {
        $('.section-filters input[type="checkbox"]').prop('checked', false);
    },

    filter_change: function (event, a) {
        event.preventDefault();

        var parent = a.parents('.home-jobs-category');

        if (a.data('type') == 'category') {
            a.parent().find('a').removeClass('active');
            a.addClass('active');
            parent.find('.row.no-gutters.category').removeClass('d-none');
            parent.find('.row.no-gutters.tags').addClass('d-none');
        } else {
            a.parent().find('a').removeClass('active');
            a.addClass('active');
            parent.find('.row.no-gutters.category').addClass('d-none');
            parent.find('.row.no-gutters.tags').removeClass('d-none');
        }
    },

    change_category: function (element) {
        if (element.prop('checked')) {
            $('.filter-category input').prop('checked', false);
            element.prop('checked', true);
            this.filter_category = element.attr('data-url');
        } else {
            this.filter_category = '';
        }
    },

    change_city: function (element) {
        if (element.prop('checked')) {
            $('.filter-city input').prop('checked', false);
            element.prop('checked', true);
            this.filter_city = element.attr('data-url');
        } else {
            this.filter_city = '';
        }
    },

    change_province: function (element) {
        if (element.prop('checked')) {
            //$('.filter-province input').prop('checked', false);
            element.prop('checked', true);
            this.filter_province = element.attr('data-url');
        } else {
            this.filter_province = '';
        }
    },

    submit_filter: function (element, event) {
        event.preventDefault();

        var form = element.parents('form');
        var action = '/allasok';

        if (window.location.href.indexOf("allasok_diak") >= 0) {
            action = '/allasok_diak';
        }

        if (window.location.href.indexOf("allasok_fizikai") >= 0) {
            action = '/allasok_fizikai';
        }

        if (window.location.href.indexOf("allasok_szellemi") >= 0) {
            action = '/allasok_szellemi';
        }

        if (window.location.href.indexOf("allasok_nyugdijas") >= 0) {
            action = '/allasok_nyugdijas';
        }

        if (window.location.href.indexOf("allasok_belso") >= 0) {
            action = '/allasok_belso';
        }

        if (window.location.href.indexOf("jobs") >= 0) {
            action = '/jobs';
        }

        if (window.location.href.indexOf("student_jobs") >= 0) {
            action = '/student_jobs';
        }

        if (window.location.href.indexOf("trazim_posao") >= 0) {
            action = '/trazim_posao';
        }

        if (window.location.href.indexOf("prace") >= 0) {
            action = '/prace';
        }

        if (window.location.href.indexOf("jobs_at") >= 0) {
            action = '/jobs_at';
        }

        if (window.location.href.indexOf("jobs_at_en") >= 0) {
            action = '/jobs_at_en';
        }

        if (this.filter_category) {
            action += '/' + this.filter_category;
        } else if ($('.filter-category input:checked').length > 0) {
            action += '/' + $('.filter-category input:checked').attr('data-url');
        }

        if (this.filter_city) {
            action += '/' + this.filter_city;
        } else if ($('.filter-city input:checked').length > 0) {
            action += '/' + $('.filter-city input:checked').attr('data-url');
        }

        form.attr('action', action);
        form.submit();
    },

    display_info: function (input) {
        input.removeAttr('placeholder');
    },

    city_search: function (input, elementID) {
        var searchable_countries = ["102", "245", "205", "210"];
        if (searchable_countries.indexOf($('#country').val()) >= 0 && input.val().length <= 2) {   
            if(!input.next('.city_search_info').length) {
                $('<span class="city_search_info">Kérjük legalább három karaktert adjon meg a település pontos nevéből, ezt követően válasszon a lenyíló listából!</span>').insertAfter(input);
            } 
        } else if (searchable_countries.indexOf($('#country').val()) >= 0 && input.val().length > 2) {
            if(input.next('.city_search_info').length) {
                $(input.next('.city_search_info')).remove();
            } 
            $.ajax({
                type: "GET",
                url: '/?block=Recru_Citysearch&ajax=1&country=' + $('#country').val() + '&city=' + $(input).val(),
                dataType: "JSON",
                success: function (ret) {
                    $('#' + elementID).empty();

                    if (ret && ret.length == 1 && input.val() == ret[0].name) {

                    } else {
                        for (var i in ret) {
                            $("<li/>").html(ret[i].name + (ret[i].name_latin ? ' (' + ret[i].name_latin + ')' : '')).attr('onclick', "ACTIONS.city_select($(this), " + input.attr('id') + ", " +  elementID + ")").appendTo("#" + elementID);
                        }
                    }

                    $('#' + elementID).removeClass('d-none');
                }
            });
        }
    },

    city_select: function (li, inputID) {
        $(inputID).val(li.html());
        $('ul[id^="city_auto"]').addClass('d-none');
    },

    change_lejarat: function (input) {
        if ($('#korlatozas').length > 0 && input.prop('checked')) {
            if (input.attr('id') == "korlatozas") {
                $('#lejarat').prop('checked', false);
                $('#lejarat').attr('data-required', 0);
                $('#korlatozas').attr('data-required', 1);
            } else {
                $('#korlatozas').prop('checked', false);
                $('#korlatozas').attr('data-required', 0);
                $('#lejarat').attr('data-required', 1);
            }
        }
    },

    change_gdpr_lejarat: function (input) {
        if ($('#lejarat').length > 0 && input.prop('checked')) {
            if (input.attr('id') == "lejarat") {
                $('#only_position').prop('checked', false);
                $('#only_position').attr('data-required', 0);
                $('#cancel_gdpr').prop('checked', false);
                $('#cancel_gdpr').attr('data-required', 0);
                $('#lejarat').attr('data-required', 1);
                $('#aszf').attr('data-required', 1);
            } else if (input.attr('id') == "only_position") {
                $('#lejarat').prop('checked', false);
                $('#lejarat').attr('data-required', 0);
                $('#cancel_gdpr').prop('checked', false);
                $('#cancel_gdpr').attr('data-required', 0);
                $('#only_position').attr('data-required', 1);
                $('#aszf').attr('data-required', 1);
            } else {
                $('#only_position').prop('checked', false);
                $('#only_position').attr('data-required', 0);
                $('#lejarat').prop('checked', false);
                $('#lejarat').attr('data-required', 0);
                $('#cancel_gdpr').attr('data-required', 1);
                $('#aszf').prop('checked', false);
                $('#aszf').attr('data-required', 0);

            }
        }
    },
    change_gdpr_lejarat_aszf: function (input) {
        if ($('#lejarat').length > 0 && input.prop('checked')) {
            $('#cancel_gdpr').prop('checked', false);
            $('#cancel_gdpr').attr('data-required', 0);
        }

        if ($('#aszf').prop('checked')) {
            $('#pleaseChoose').show();
        } else {
            $('#pleaseChoose').hide();
        }

        if (!$('#only_position').length) {
            if ($('#aszf').prop('checked')) {
                $('#lejarat').attr('data-required', 1);
            } else {
                $('#lejarat').attr('data-required', 0);
            }
        }
    },

    validate1: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;

        if (!$('#aszf').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#aszf').offset().top : first_error_pos;
            $('#aszf').parents('.form-check').addClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').removeClass('d-none');
        } else {
            $('#aszf').parents('.form-check').removeClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').addClass('d-none');
        }

        if (!$('#lejarat').prop('checked') && ($('#korlatozas').length < 1 || !$('#korlatozas').prop('checked'))) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#lejarat').offset().top : first_error_pos;
            $('#lejarat').parents('.main-form').find('small.text-danger').removeClass('d-none');
        } else {
            $('#lejarat').parents('.main-form').find('small.text-danger').addClass('d-none');
        }

        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.step1').submit();
            }
        }
    },

    validate1at: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;

        if (!$('#aszf').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#aszf').offset().top : first_error_pos;
            $('#aszf').parents('.form-check').addClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').removeClass('d-none');
        } else {
            $('#aszf').parents('.form-check').removeClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').addClass('d-none');
        }


        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.step1').submit();
            }
        }
    },

    validateAszf: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;

        if (!$('#aszf').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#aszf').offset().top : first_error_pos;
            $('#aszf').parents('.form-check').addClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').removeClass('d-none');
        } else {
            $('#aszf').parents('.form-check').removeClass('error');
            $('#aszf').parents('.form-check').find('small.text-danger').addClass('d-none');
        }

        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.contact_form').submit();
            }
        }
    },

    phonenumber2: function (event, input) {
        var enable_codes = ['ArrowLeft', 'ArrowRight', 'Delete', 'Backspace'];

        if (!$.isNumeric(event.key) && enable_codes.indexOf(event.code) < 0) {
            event.preventDefault();
            return false;
        }

        if (input.val().length > 1 && $.isNumeric(event.key)) {
            var next = $(input.next());
            next.val(event.key + next.val());
            next.focus();
            next.get(0).setSelectionRange(1, 1);
            event.preventDefault();
            return false;
        }
    },

    phonenumber3: function (event, input) {
        var enable_codes = ['ArrowLeft', 'ArrowRight', 'Delete', 'Backspace'];

        if (!$.isNumeric(event.key) && enable_codes.indexOf(event.code) < 0) {
            event.preventDefault();
            return false;
        }
    },

    fileupload: function (input) {
        var type = input.attr('data-type');
        var myfile = input.val();

        if (input.val().trim() == '') return false;

        var ext = myfile.split('.').pop();

        if (ext == "pdf" || ext == "docx" || ext == "doc") {
            $('.uploaded_' + type).find('span').html(myfile.split('\\').pop());
            $('.uploaded_' + type).removeClass('d-none');
            $('.upload_' + type).addClass('d-none');
            $('.upload-gr_' + type).addClass('d-none');
        } else {
            alert('Nem engedélyezett fájl formátum!');
            input.val('');
        }
    },

    db_fileupload: function (files) {
        if (files[0] && files[0].link) {
            var ext = files[0].link.split('.').pop();

            if (ext == "pdf" || ext == "docx" || ext == "doc") {
                $('#db_cv').val(files[0].link);
                $('#gd_cv').val('');
                $('.uploaded').find('span').html(files[0].name);
                $('.uploaded').removeClass('d-none');
                $('.upload').addClass('d-none');
                $('.upload-gr').addClass('d-none');
            } else {
                alert('Nem engedélyezett fájl formátum!');
            }
        }
    },

    dropbox: function (event) {
        event.preventDefault();
        var _this = this;

        if ($('#dropboxjs').length < 1 || typeof Dropbox == "undefined") {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.id = 'dropboxjs';
            script.dataset.appKey = "6fwyalatw7fi61j";
            script.src = 'https://www.dropbox.com/static/api/2/dropins.js';

            script.onload = function () {
                Dropbox.choose({
                    linkType: "direct",
                    extensions: {
                        inputId: 'cv',
                        isImage: '0',
                        docTypeCode: 'cv',
                        allowedExtensions: [".doc", ".docx", ".pdf"],
                        module: 'public'
                    },
                    success: function (files) {
                        _this.db_fileupload(files);
                    }
                });
            };

            head.appendChild(script);
        } else {
            Dropbox.choose({
                linkType: "direct",
                extensions: {
                    inputId: 'cv',
                    isImage: '0',
                    docTypeCode: 'cv',
                    allowedExtensions: [".doc", ".docx", ".pdf", ".rtf"],
                    module: 'public'
                },
                success: function (files) {
                    _this.db_fileupload(files);
                }
            });
        }

    },

    drive: function (event) {
        event.preventDefault();
        var _this = this;

        if ($('#drivejs').length < 1 || typeof gapi == "undefined") {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.id = 'drivejs';
            script.src = 'https://apis.google.com/js/api.js';

            script.onload = function () {
                gapi.load('auth2', function () {
                    gapi.auth2.authorize({
                            'client_id': '760964087963-tnd9de4uote3jspfoo9pel31htqo4k0u.apps.googleusercontent.com',
                            'scope': 'https://www.googleapis.com/auth/drive.file',
                            'immediate': false
                        },
                        function (authResult) {
                            if (authResult && !authResult.error) {
                                _this.oauthToken = authResult.access_token;
                                _this.createPicker();
                            }
                        });
                });
                gapi.load('picker', function () {
                    _this.pickerApiLoaded = true;
                    _this.createPicker();
                });
                gapi.load('client', function () {
                    gapi.client.load('drive', 'v2', function () {
                    });
                })
            };

            head.appendChild(script);
        } else {
            _this.createPicker();
        }
    },

    createPicker: function () {
        if (this.pickerApiLoaded && this.oauthToken) {
            var view = new google.picker.View(google.picker.ViewId.DOCS);
            view.setMimeTypes("application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document");
            var picker = new google.picker.PickerBuilder()
                .enableFeature(google.picker.Feature.NAV_HIDDEN)
                .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
                .setAppId('760964087963')
                .setOAuthToken(this.oauthToken)
                .addView(view)
                .addView(new google.picker.DocsUploadView())
                .setDeveloperKey('AIzaSyDZk0adl498JMF8oUz6_5nukqFkg9kkzvQ')
                .setCallback(this.pickerCallback)
                .build();
            picker.setVisible(true);
        }
    },

    pickerCallback: function (data) {
        if (data && data.docs && data.docs[0] && data.docs[0].url) {
            var ext = data.docs[0].name.split('.').pop();

            if (ext == "pdf" || ext == "docx" || ext == "doc") {
                var name = data.docs[0].name;

                gapi.client.drive.files.get({
                    fileId: '1wooGXqbKfPk2TCSd2bBN1p2Qw1Wo7uLl',//data.docs[0].id,
                    alt: "media"
                }).then(function (res) {
                    if (res.status == 200) {
                        $('#db_cv').val(btoa(res.body));
                        $('#gd_cv').val(name);
                        $('.uploaded').find('span').html(name);
                        $('.uploaded').removeClass('d-none');
                        $('.upload').addClass('d-none');
                        $('.upload-gr').addClass('d-none');
                    }
                });
            } else {
                alert('Nem engedélyezett fájl formátum!');
            }
        }
    },

    delcv: function (event, type) {
        event.preventDefault();
        $('.uploaded_' + type).find('span').html('');
        $('.uploaded_' + type).addClass('d-none');
        $('.upload_' + type).removeClass('d-none');
        $('.upload-gr_' + type).removeClass('d-none');

        $('#' + type).val('');
        $('#db_' + type).val('');
        $('#gd_' + type).val('');
    },

    applyWithFB: function (event) {
        event.preventDefault();
        var _this = this;

        if ($('#facebookjs').length < 1 || typeof FB == "undefined") {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.id = 'facebookjs';
            script.src = 'https://connect.facebook.net/en_US/sdk.js';
            script.onload = function () {
                FB.init({
                    appId: '1002669860611692',
                    status: true,
                    xfbml: true,
                    version: 'v2.7'
                });

                FB.getLoginStatus(function (response) {
                    if (response.status === 'connected') {
                        _this.fillWithFBData();
                    } else {
                        FB.login(function (response) {
                            if (response.authResponse.accessToken) {
                                _this.fillWithFBData();
                            }
                        }, {scope: 'public_profile email user_age_range user_location', return_scopes: true});
                    }

                });
            };

            head.appendChild(script);
        } else {
            FB.getLoginStatus(function (response) {
                if (response.status === 'connected') {
                    _this.fillWithFBData();
                } else {
                    FB.login(function (response) {
                        if (response.authResponse.accessToken) {
                            _this.fillWithFBData();
                        }
                    }, {scope: 'email public_profile', return_scopes: true});
                }

            });
        }
    },

    fillWithFBData: function () {
        FB.api('/me?fields=first_name,last_name,middle_name,email,age_range,location{location{city,country_code}}', function (response) {
            console.log(response);
            $('#family_name').val(response.last_name);
            $('#first_name').val(response.first_name + (response.middle_name ? ' ' + response.middle_name : ''));
            $('#email').val(response.email);
            $('#email_again').val(response.email);

            if (response.age_range && response.age_range.min && response.age_range.min > 18) {
                $('#18year1').prop('checked', true);
                $('#18year2').prop('checked', false);
            } else if (response.age_range && response.age_range.max && response.age_range.max < 18) {
                $('#18year1').prop('checked', false);
                $('#18year2').prop('checked', true);
            }

            var countries = {
                'HU': 102,
                'RS': 205,
                'UA': 245,
                'SK': 210,
                'AT': 14,
                'RO': 190
            };

            console.log(response.location.location.country_code);
            if (response.location && response.location.location.country_code) {
                if (countries[response.location.location.country_code]) {
                    $('#country').val(countries[response.location.location.country_code]).change();
                } else {
                    $('#country').val(0).change();
                }
            }

            if (response.location && response.location.location.city) {
                $('#city').val(response.location.location.city);
            }

        });
    },

    applyWithLinkedIn: function (event) {
        event.preventDefault();
        var _this = this;

        if ($('#linkedinjs').length < 1 || typeof IN == "undefined") {
            var head = document.getElementsByTagName('head')[0];
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.id = 'linkedinjs';
            script.src = 'https://platform.linkedin.com/in.js';
            script.innerHTML = "api_key: 78rgnutv628e7m";
            script.onload = function () {
                //IN.UI.Authorize('https://').params({"scope":["r_basicprofile", "r_emailaddress"]}).place();
                //IN.Event.on(IN, 'auth', _this.fillWithLinkedInData);
            };

            head.appendChild(script);

        } else {
            _this.getProfileData();
            //_this.fillWithLinkedInData();
        }
    },


    onLinkedInLoad: function () {
        console.log('megyek még mindig?');
        IN.Event.on(IN, "auth", ACTIONS.getProfileData);
    },

    onSuccess: function (data) {
        console.log(data);
    },

    onError: function (error) {
        console.log(error);
    },

    getProfileData: function () {
        IN.API.Raw("/people/~").result(ACTIONS.onSuccess).error(ACTIONS.onError);
    },

    fillWithLinkedInData: function () {
        IN.API.Profile("me").fields("id,firstName,lastName,email-address,picture-urls::(original),public-profile-url,location:(name)").result(function (me) {
            console.log(me);
        });
    },

    birthdayCheck: function (elem) {
        var birthday = new Date(elem.val());
        var birthDate = new Date();
        birthDate.setFullYear(birthday.getFullYear(), birthday.getMonth(), birthday.getDate());
        var currentDate = new Date();
        var adultDate = new Date();
        adultDate.setFullYear(birthDate.getFullYear() + 18, birthday.getMonth(), birthday.getDate());

        if (adultDate - currentDate > 0) {
            $('#parent_name').parents('.form-group').removeClass('d-none');
            $('#parent_email').parents('.form-group').removeClass('d-none');
            $('#parent_name').attr('data-required', 1);
            $('#parent_email').attr('data-required', 1);
        } else {
            $('#parent_name').parents('.form-group').addClass('d-none');
            $('#parent_email').parents('.form-group').addClass('d-none');
            $('#parent_name').attr('data-required', 0);
            $('#parent_email').attr('data-required', 0);
        }

    },

    validate2: function (event, submit, uploadRequired) {
        $('#applicationSubmit').attr('disabled', true);
        event.preventDefault();

        if (!submit && !this.submited) {
            $('#applicationSubmit').attr('disabled', false);
            return false;
        }

        var ok = true;
        var first_error_pos = 0;
        var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        $("#token").val('');

        $('[data-required=1]').each(function(){
            if ($(this).val().trim().length < 1) {
                ok = false;
                first_error_pos = first_error_pos == 0 ? $(this).offset().top : first_error_pos;
                $(this).parents('.form-group').addClass('error');
                $(this).parents('.form-group').find('small').removeClass('d-none');
            } else {
                $(this).parents('.form-group').removeClass('error');
                $(this).parents('.form-group').find('small').addClass('d-none');
            }
        });

        if ($('#email').val().trim().length > 0 && !regex.test($('#email').val())) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email').offset().top : first_error_pos;
            $('#email').parents('.form-group').addClass('error');
            $('#email').parents('.form-group').find('small.email_valid').removeClass('d-none');
        } else if ($('#email').val().trim().length > 0) {
            $('#email').parents('.form-group').removeClass('error');
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        } else {
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        }

        /*if ($('#email_again').val().trim().length < 1 || $('#email').val() != $('#email_again').val()) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email_again').offset().top : first_error_pos;
            $('#email_again').parents('.form-group').addClass('error');
            $('#email_again').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#email_again').parents('.form-group').removeClass('error');
            $('#email_again').parents('.form-group').find('small').addClass('d-none');
        }*/

        const phoneNumber = $('#phone_1').val().trim();

        const phoneRegex = /^\+?[0-9()\- ]{4,}$/;

        if (!phoneRegex.test(phoneNumber)) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#phone_1').offset().top : first_error_pos;
            $('#phone_1').parents('.form-group').addClass('error');
            $('#phone_1').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#phone_1').parents('.form-group').removeClass('error');
            $('#phone_1').parents('.form-group').find('small').addClass('d-none');
            //$('#phone_1').parents('.form-group').find('.select2-selection').attr('style','');
        }

        /*$.ajax({
            type: "GET",
            url: '/?block=Recru_Citycheck&ajax=1&country=' + $('#country').val() + '&city=' + $('#city').val(),
            dataType: "JSON",
            async: false,
            success: function (ret) {
                if (false === ret) {
                    ok = false;
                    first_error_pos = first_error_pos == 0 ? $('#city').offset().top : first_error_pos;
                    $('#city').parents('.form-group').addClass('error');
                    $('#city').parents('.form-group').find('small').removeClass('d-none');
                }
            }
        });*/

        /*if ($('#city_of_studies').length > 0 && $('#city_of_studies').val().trim().length > 0) {
            $.ajax({
                type: "GET",
                url: '/?block=Recru_Citycheck&ajax=1&country=' + $('#country').val() + '&city=' + $('#city_of_studies').val(),
                dataType: "JSON",
                async: false,
                success: function (ret) {
                    if (false === ret) {
                        ok = false;
                        first_error_pos = first_error_pos == 0 ? $('#city_of_studies').offset().top : first_error_pos;
                        $('#city_of_studies').parents('.form-group').addClass('error');
                        $('#city_of_studies').parents('.form-group').find('small').removeClass('d-none');
                    }
                }
            });
        }*/

        if (uploadRequired) {

            if ($('#cv').val().trim() == '') {
                ok = false;
                first_error_pos = first_error_pos == 0 ? $('#uploadGroup').offset().top : first_error_pos;
                $('#uploadGroup').addClass('error');
                $('#cvRequiredMessage').removeClass('d-none');
            } else {
                $('#cvRequiredMessage').addClass('d-none');
                $('#uploadGroup').removeClass('error');
            }
        }

        if (submit) {
            this.submited = true;

            if (!ok) {
                $('#applicationSubmit').attr('disabled', false);
                $(window).scrollTop(first_error_pos - 150);
            } else {
                grecaptcha.ready(function () {
                    var googleRecaptchaSiteKey = $('#googleRecaptchaSiteKey').val();
                    grecaptcha.execute(googleRecaptchaSiteKey, {action: 'submit'}).then(function (token) {
                        $("#token").val(token);
                        $('form.main-form.step2').submit();
                    });
                });
            }
        }
    },

    validateLogin: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;
        var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;


        if ($('#email').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email').offset().top : first_error_pos;
            $('#email').parents('.form-group').addClass('error');
            $('#email').parents('.form-group').find('small.email_empty').removeClass('d-none');
        } else {
            $('#email').parents('.form-group').removeClass('error');
            $('#email').parents('.form-group').find('small.email_empty').addClass('d-none');
        }

        if ($('#password').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#password').offset().top : first_error_pos;
            $('#password').parents('.form-group').addClass('error');
            $('#password').parents('.form-group').find('small.password_empty').removeClass('d-none');
        } else {
            $('#password').parents('.form-group').removeClass('error');
            $('#password').parents('.form-group').find('small.password_empty').addClass('d-none');
        }

        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.bejelentkezes').submit();
            }
        }
    },
    validateChangePassword: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;
        var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if ($('#password').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#password').offset().top : first_error_pos;
            $('#password').parents('.form-group').addClass('error');
            $('#password').parents('.form-group').find('small.password_empty').removeClass('d-none');
        } else {
            $('#password').parents('.form-group').removeClass('error');
            $('#password').parents('.form-group').find('small.password_empty').addClass('d-none');
        }

        if ($('#password_again').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#password_again').offset().top : first_error_pos;
            $('#password_again').parents('.form-group').addClass('error');
            $('#password_again').parents('.form-group').find('small.password_again_empty').removeClass('d-none');
        } else {
            $('#password_again').parents('.form-group').removeClass('error');
            $('#password_again').parents('.form-group').find('small.password_again_empty').addClass('d-none');
        }

        if ($('#password_again').val().trim().length < 1 || $('#password').val() != $('#password_again').val()) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#password_again').offset().top : first_error_pos;
            $('#password_again').parents('.form-group').addClass('error');
            $('#password_again').parents('.form-group').find('small.password_again_different').removeClass('d-none');
        } else {
            $('#password_again').parents('.form-group').removeClass('error');
            $('#password_again').parents('.form-group').find('small.password_again_different').addClass('d-none');
        }

        if ($('#old_password').length !== 0) {

            if ($('#old_password').val().trim().length < 1) {
                ok = false;
                first_error_pos = first_error_pos == 0 ? $('#old_password').offset().top : first_error_pos;
                $('#old_password').parents('.form-group').addClass('error');
                $('#old_password').parents('.form-group').find('small').removeClass('d-none');
            } else {
                $('#old_password').parents('.form-group').removeClass('error');
                $('#old_password').parents('.form-group').find('small').addClass('d-none');
            }
        }

        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.change_password').submit();
            }
        }
    },

    validate5: function (event, submit) {
        event.preventDefault();

        if (!submit && !this.submited) return false;

        var ok = true;
        var first_error_pos = 0;
        var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        $("#token").val('');

        if ($('#family_name').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#family_name').offset().top : first_error_pos;
            $('#family_name').parents('.form-group').addClass('error');
            $('#family_name').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#family_name').parents('.form-group').removeClass('error');
            $('#family_name').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('#first_name').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#first_name').offset().top : first_error_pos;
            $('#first_name').parents('.form-group').addClass('error');
            $('#first_name').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#first_name').parents('.form-group').removeClass('error');
            $('#first_name').parents('.form-group').find('small').addClass('d-none');
        }

        if (!$('#18year1').prop('checked') && !$('#18year2').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#18year1').offset().top : first_error_pos;
            $('#18year1').parents('.form-group').find('label[for=18year]').addClass('text-danger');
            $('#18year1').parents('.form-group').find('small.text-danger').removeClass('d-none');
        } else {
            $('#18year1').parents('.form-group').find('label[for=18year]').removeClass('text-danger');
            $('#18year1').parents('.form-group').find('small.text-danger').addClass('d-none');
        }

        if ($('#18year2').prop('checked') && $('#parent_name').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#parent_name').offset().top : first_error_pos;
            $('#parent_name').parents('.form-group').addClass('error');
            $('#parent_name').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#parent_name').parents('.form-group').removeClass('error');
            $('#parent_name').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('#18year2').prop('checked') && $('#parent_email').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#parent_email').offset().top : first_error_pos;
            $('#parent_email').parents('.form-group').addClass('error');
            $('#parent_email').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#parent_email').parents('.form-group').removeClass('error');
            $('#parent_email').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('#city').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#city').offset().top : first_error_pos;
            $('#city').parents('.form-group').addClass('error');
            $('#city').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#city').parents('.form-group').removeClass('error');
            $('#city').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('#email').val().trim().length < 1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email').offset().top : first_error_pos;
            $('#email').parents('.form-group').addClass('error');
            $('#email').parents('.form-group').find('small.email_empty').removeClass('d-none');
        } else {
            $('#email').parents('.form-group').removeClass('error');
            $('#email').parents('.form-group').find('small.email_empty').addClass('d-none');
        }

        if ($('#email').val().trim().length > 0 && !regex.test($('#email').val())) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email').offset().top : first_error_pos;
            $('#email').parents('.form-group').addClass('error');
            $('#email').parents('.form-group').find('small.email_valid').removeClass('d-none');
        } else if ($('#email').val().trim().length > 0) {
            $('#email').parents('.form-group').removeClass('error');
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        } else {
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        }

        if ($('#email_again').val().trim().length < 1 || $('#email').val() != $('#email_again').val()) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email_again').offset().top : first_error_pos;
            $('#email_again').parents('.form-group').addClass('error');
            $('#email_again').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#email_again').parents('.form-group').removeClass('error');
            $('#email_again').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('#phone_1').val().trim().length < 4) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#phone_1').offset().top : first_error_pos;
            $('#phone_1').parents('.form-group').addClass('error');
            $('#phone_1').parents('.form-group').find('small').removeClass('d-none');
            //$('#phone_1').parents('.form-group').find('.select2-selection').attr('style','border-color: red !important;');
        } else {
            $('#phone_1').parents('.form-group').removeClass('error');
            $('#phone_1').parents('.form-group').find('small').addClass('d-none');
            //$('#phone_1').parents('.form-group').find('.select2-selection').attr('style','');
        }

        if (!$('#student1').prop('checked') && !$('#student2').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#student1').offset().top : first_error_pos;
            $('#student1').parents('.form-group').find('label[for=student]').addClass('text-danger');
            $('#student1').parents('.form-group').find('small.text-danger').removeClass('d-none');
        } else {
            $('#student1').parents('.form-group').find('label[for=student]').removeClass('text-danger');
            $('#student1').parents('.form-group').find('small.text-danger').addClass('d-none');
        }

        /*if($('#student1').prop('checked') && $('#studentcard_date').val().trim().length<1) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#studentcard_date').offset().top : first_error_pos;
            $('#studentcard_date').parents('.form-group').addClass('error');
            $('#studentcard_date').parents('.form-group').find('small').removeClass('d-none');
            $('#studentcard_date').parents('.form-group').find('.select2-selection').attr('style','border-color: red !important;');
        } else {
            $('#studentcard_date').parents('.form-group').removeClass('error');
            $('#studentcard_date').parents('.form-group').find('small').addClass('d-none');
            $('#studentcard_date').parents('.form-group').find('.select2-selection').attr('style','');
        }*/

        if (submit) {
            this.submited = true;

            if (!ok) {
                $(window).scrollTop(first_error_pos - 150);
            } else {
                $('form.main-form.modify-form').submit();
            }
        }
    },

    visszahivas: function (event, submit) {
        $('#visszahivasSubmit').attr('disabled', true);
        event.preventDefault();

        if (!submit && !this.submited) {
            $('#visszahivasSubmit').attr('disabled', false);
            return false;
        }

        var ok = true;
        var first_error_pos = 0;
        var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if (!$('#aszf').prop('checked')) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#aszf').offset().top : first_error_pos;
            $('#aszf').parents('.form-check').addClass('error');
            $('#aszf').parents('.form-check').find('small').removeClass('d-none');
        } else {
            $('#aszf').parents('.form-check').removeClass('error');
            $('#aszf').parents('.form-check').find('small').addClass('d-none');
        }

        if (!$('#lejarat').prop('checked') && ($('#korlatozas').length < 1 || !$('#korlatozas').prop('checked'))) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#lejarat').offset().top : first_error_pos;
            $('#lejarat').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#lejarat').parents('.form-group').find('small').addClass('d-none');
        }

        $('[data-required=1]').each(function(){
            if ($(this).val().trim().length < 1) {
                ok = false;
                first_error_pos = first_error_pos == 0 ? $(this).offset().top : first_error_pos;
                $(this).parents('.form-group').addClass('error');
                $(this).parents('.form-group').find('small').removeClass('d-none');
            } else {
                $(this).parents('.form-group').removeClass('error');
                $(this).parents('.form-group').find('small').addClass('d-none');
            }
        });

        if ($('#email').val().trim().length > 0 && !regex.test($('#email').val())) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email').offset().top : first_error_pos;
            $('#email').parents('.form-group').addClass('error');
            $('#email').parents('.form-group').find('small.email_valid').removeClass('d-none');
        } else if ($('#email').val().trim().length > 0) {
            $('#email').parents('.form-group').removeClass('error');
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        } else {
            $('#email').parents('.form-group').find('small.email_valid').addClass('d-none');
        }

        if ($('#email_again').val().trim().length < 1 || $('#email').val() != $('#email_again').val()) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('#email_again').offset().top : first_error_pos;
            $('#email_again').parents('.form-group').addClass('error');
            $('#email_again').parents('.form-group').find('small').removeClass('d-none');
        } else {
            $('#email_again').parents('.form-group').removeClass('error');
            $('#email_again').parents('.form-group').find('small').addClass('d-none');
        }

        if ($('form.phonecall #phone_2').val().trim().length + $('form.phonecall #phone_3').val().trim().length < 4) {
            ok = false;
            first_error_pos = first_error_pos == 0 ? $('form.phonecall #phone_2').offset().top : first_error_pos;
            $('form.phonecall #phone_2').parents('.form-group').addClass('error');
            $('form.phonecall #phone_2').parents('.form-group').find('small').removeClass('d-none');
            $('form.phonecall #phone_2').parents('.form-group').find('.select2-selection').attr('style', 'border-color: red !important;');
        } else {
            $('form.phonecall #phone_2').parents('.form-group').removeClass('error');
            $('form.phonecall #phone_2').parents('.form-group').find('small').addClass('d-none');
            $('form.phonecall #phone_2').parents('.form-group').find('.select2-selection').attr('style', '');
        }

        /*$.ajax({
            type: "GET",
            url: '/?block=Recru_Citycheck&ajax=1&country=' + $('#country').val() + '&city=' + $('#city').val(),
            dataType: "JSON",
            async: false,
            success: function (ret) {
                if (false === ret) {
                    ok = false;
                    first_error_pos = first_error_pos == 0 ? $('#city').offset().top : first_error_pos;
                    $('#city').parents('.form-group').addClass('error');
                    $('#city').parents('.form-group').find('small').removeClass('d-none');
                }
            }
        });*/

        if (submit) {
            this.submited = true;

            if (!ok) {
                $('#visszahivasSubmit').attr('disabled', false);
                $(window).scrollTop(first_error_pos - 150);
            } else {
                grecaptcha.ready(function () {
                    var googleRecaptchaSiteKey = $('#googleRecaptchaSiteKey').val();
                    grecaptcha.execute(googleRecaptchaSiteKey, {action: 'submit'}).then(function (token) {
                        $("#token").val(token);
                        $('form.phonecall').submit();
                    });
                });
            }
        }

    }
};

function validateCity(country, city) {

}