PageSourceSearch

https://s.mihnati.com/c/js/cmn.js?ver=202609242209

js mihnati.com collected 2026-09-24 17:10:12 UTC 75,443 bytes, 2,059 lines download raw bytes

1var spinner = '<div class="spinner"></div>';
2var spin = '<div class="spinner-wrapper-gray loading center-block spinner_loader spnSeeMore" id="spinChngeUsr">'
3        + spinner;
4+'</div>';
5// Central Spinner HTML
6var spinnerHTML = '<div style="text-align:center;  margin-bottom:20px;">'
7        + '<div class="spinner-wrapper-gray loading center-block spinner_loader spnSeeMore" id="spinChngeUsr">'
8        + '<div class="spinner"></div>'
9        + '</div></div>';
10function trackAdwordsConv(google_conversion_id, google_conversion_label)
11{
12    var image = new Image(1, 1);
13    image.src = "//www.googleadservices.com/pagead/conversion/" + google_conversion_id + "/?label=" + google_conversion_label;
14}
15function ajx(method, param, path, dataType, cb) {
16
17    if (dataType == '')
18        dataType = 'json';
19    $.ajax({
20        url: ajax_url + path,
21        async: true,
22        type: method,
23        data: param,
24        dataType: dataType,
25        headers: {
26            //'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
27        },
28        success: cb,
29        error: function (resp) {
30            log(resp);
31        }
32
33    });
34}
35
36function log(obj) {
37    console.log(obj);
38}
39
40function selOpt(oln, ListVal)
41{
42    for (i = 0; i < oln.length; i++)
43    {
44        if (oln.options[i].value == ListVal)
45        {
46            oln.selectedIndex = i;
47            break;
48        }
49    }
50}
51
52function verifyEmail() {
53
54    var field = $("#email");
55    var spinner = $("#emailSpiner");
56    var params = {};
57    params.email = field.val();
58    spinner.attr("style", "display:block!important");
59    ajx('POST', params, 'user/verifyemail', '', function (resp) {
60        //alert(resp.response);
61        spinner.attr("style", "");
62        if (resp.response == 11) {
63            p_screen();
64            return true;
65        } else {
66            $('.merror').text(resp.response);
67            field.addClass("merror");
68            return false;
69        }
70    });
71}
72
73function loadCaptcha(fromPage) {
74    var captchaContainer = null;
75    captchaContainer = grecaptcha.render('captchaContainer', {
76        'sitekey': '6LdTBRUTAAAAAJfuZIS-4yMBHOgaY0yu-VigaxY3',
77        'callback': function (response) {
78            if (fromPage == 'signIn') {
79                $('#googleCaptcha').val(response);
80                return;
81            }
82            if (fromPage == 'savePAQueryData') {
83                $('#googleCaptchaQueryData').val(response);
84                $('.captchaModal').modal('toggle');
85                savePAQueryData();
86            }
87            if (fromPage == 'savePACallData') {
88                $('#googleCaptchaCallData').val(response);
89                $('.captchaModal').modal('toggle');
90                savePACallData();
91            }
92        },
93    });
94}
95
96function refreshRzTkn() {
97    var params = {};
98    ajx('GET', params, 'user/refreshtkn', '', function (resp) {
99        log(resp);
100        if (typeof resp.rzTkn !== 'undefined') {
101            $('#rzTkn').val(resp.rzTkn);
102        }
103    });
104}
105
106function signIn(confirm) { // from mihnati
107    var validator = $('#login-form').validate();
108    var validation = validator.form();
109    if (validation === false) {
110        //return Notify.info(msg_form_warning,{displayDuration:10000});
111        return commonAlert('warning', msg_form_warning, '', 'message');
112    }
113    $('#login-form .loading').show();
114    $('#messageContainer').html('');
115    $('#login-form .btn-default').hide();
116    //commonAlert('warning', msg_plz_wait);
117    // Notify.info(msg_plz_wait,{displayDuration:0});
118    var params = {};
119    let email = $('#login-form #_email').val();
120    if (typeof email == 'undefined') {
121        email = $("#login-form #email").val();
122    }
123    params.email = email;
124    params.pwd = $('#login-form #pwd').val();
125    params.rzTkn = $('#rzTkn').val();
126    var gCaptcha = $('#googleCaptcha').val();
127    if (gCaptcha != null && gCaptcha != '') {
128        params.gCaptcha = gCaptcha;
129    }
130    if (typeof confirm !== 'undefined') {
131        params.goAheadCall = confirm;
132        params.token = $('#token').val();
133    }
134    $.ajax({
135        url: ajax_url + 'user/login',
136        type: 'POST',
137        data: params,
138        dataType: 'json',
139        headers: {
140            //'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
141        },
142        success: function (resp) {
143            //console.log('========> '+typeof resp, resp);
144            if (typeof resp.status !== 'undefined' && resp.status === false) {
145                commonAlert('danger', resp.response, '', 'messageContainer');
146            }
147            if (typeof resp.captcha !== 'undefined') {
148                if (resp.captcha == 'loadCaptcha') {
149                    $('#captchaContainer').html('');
150                    $('#login-form .loading').hide();
151                    $('.btn-default').show();
152                    try {
153                        loadCaptcha('signIn');
154                    } catch (err) {
155                        grecaptcha.reset();
156                    }
157                }
158            }
159            if (typeof resp.code !== 'undefined' && resp.code === 121) {
160                $('#token').val(resp.token);
161                $('#rzTkn').val(resp.rzTkn);
162                bootbox.confirm({
163                    title: msg_duplicateLogin,
164                    message: "<h5>" + resp.message + "</h5>",
165                    //className: 'confirmLoginProceed',
166                    buttons: {
167                        confirm: {
168                            label: msg_continuelogin_btn,
169                            className: 'btn-success'
170                        },
171                        cancel: {
172                            label: msg_cancel_btn,
173                            className: 'btn-danger'
174                        }
175                    },
176                    callback: function (result) {
177                        //console.log('This was logged in the callback: ' + result);
178                        if (result) {
179                            signIn('Y');
180                        } else {
181                            $('#login-form .loading').hide();
182                            $('.btn-default').show();
183                        }
184                    }
185                });
186                return;
187            }
188            if (typeof resp.data !== 'undefined') {
189                window.location.href = (typeof resp.url === 'undefined') ? site_url + 'dashboard' : resp.url;
190                return;
191            }
192            if (resp.response == 11) {
193                window.location.href = site_url + 'dashboard';
194            } else if (resp.response == 'TknMisMatch') {
195                $('#rzTkn').val(resp.rzTkn);
196                //  Notify.info('Sorry, Token mismatch. Please try again.',{displayDuration:10000});
197                $('#login-form .loading').hide();
198                $('.btn-default').show();
199                commonAlert('danger', 'Something went wrong. Please try again.', '', 'messageContainer');
200                return false;
201            } else if (resp.response == 'N') {
202                window.location.href = site_url + 'register/verifyregister/?email=' + resp.email;
203            } else {
204                // Notify.info(resp.response,{displayDuration:10000});
205                $('#login-form .loading').hide();
206                $('.btn-default').show();
207                commonAlert('danger', resp.response, '', 'messageContainer');
208                $('#rzTkn').val(resp.rzTkn);
209                $('.merror').text(resp.response);
210                return false;
211            }
212        },
213        error: function (resp) {
214            log(resp);
215        }
216
217    });
218}
219
220function register(token) {
221
222    $('#btnContinue').hide();
223    $('#wait').css("display", "block");
224
225    var params = {};
226    params = $('#registerFrom').serialize();
227    params += '&userJetonRecaptcha=' + token;
228
229    ajx('POST', params, 'user/register', '', function (res) {
230
231
232        if (res.msg == "") {
233            if (typeof fbq == 'function') { // if fbq is defined i.e. fbevents is loaded
234                fbq('track', 'CompleteRegistration', {
235                    RegisterStep: 1
236                });
237            }
238            var response = "register/signupquestions";
239            window.location.href = site_url + response;
240        }
241//        else if (res.msg == "CV exists") {
242//            $('.fieldc:last').find('ul.merror').remove();
243//            $('#btnContinue').show();
244//            $('#wait').css("display", "none");
245//            alert(res.response);
246//            return false;
247//        }
248        else {
249            $('#btnContinue').show();
250            $('#wait').css("display", "none");
251
252            $('.fieldc:last').find('ul.merror').remove();
253            var ul = $('.fieldc:last').append('<ul class="merror mt10 s-24"></ul>').find('ul.merror');
254            if (res.status === false) {
255                $.each(res.response, function (field, message) {
256                    ul.append('<li>' + message + '</li>');
257                });
258            } else {
259                ul.append('<li>' + res.response + '</li>');
260            }
261            setTimeout(function () {
262                $('.fieldc:last').find('ul.merror').remove();
263            }, 5000);
264        }
265        if (typeof grecaptcha == 'object') { // if grecaptcha is defined i.e. recaptcha is loaded
266            grecaptcha.reset();
267        }
268    });
269}
270
271function saveDropCv() {
272    
273    var redirectTo = seeker_url + 'dashboard';
274    $('#dropCvBtn').hide();
275    $('#wait').show();
276    var params = {};
277
278    var formData = $("#dropCvForm").serialize();
279    var params = { formData: formData };
280    
281    ajx('POST', params, 'job/dropcv1','', function (res) {
282        if (res.status === true) {
283            $('.alertdiv').show();
284            $('.alertdiv').html(res.message);
285             $('#wait').hide();
286           setTimeout(function () {
287                    window.location = redirectTo;
288                }, 15000);
289        }
290        else
291        {  $('.alertdiv').show();
292           $('.alertdiv').html(res.message);
293           $('#wait').hide();
294           $('#dropCvBtn').show();
295           
296        }
297       
298    });
299}
300
301 
302
303function registerStep2() {
304    $('#btnFinish').hide();
305    $('#wait').css("display", "block");
306    var params = {};
307    params = $('#registerFrom2').serialize();
308    ajx('POST', params, 'user/registerstep2', '', function (res) {
309        if (res.status == true) {
310            if (typeof fbq == 'function') { // if fbq is defined i.e. fbevents is loaded
311                fbq('track', 'CompleteRegistration', {
312                    RegisterStep: 2
313                });
314            }
315            //window.location.href = site_url + "home/verifyregister/?email=" + res.email + "&linkedin=" + res.linkedin;
316            window.location.href = site_url + "register/verifyregister";
317
318        } else if (res.status == false) {
319            $('#btnFinish').show();
320            $('#wait').css("display", "none");
321            $('.fieldc:last').find('ul.merror').remove();
322            var ul = $('.fieldc:last').append('<ul class="merror mt10 s-24"></ul>').find('ul.merror');
323            $.each(res.response, function (field, message) {
324                ul.append('<li>' + message + '</li>');
325            });
326
327            setTimeout(function () {
328                $('.fieldc:last').find('ul.merror').remove();
329            }, 5000);
330            return false;
331            // alert(res.msg);
332            //return false;
333        } else {
334            window.location.href = site_url + "login/";
335        }
336
337    });
338}
339
340function emailExist() {
341
342    $("#emailSp").attr("style", "display:block !important");
343    var params = {};
344    params.email = $('#email').val();
345    ajx('POST', params, 'user/emailExists', 'html', function (res) {
346
347        $("#emailSp").attr("style", "");
348        if (res != '') {
349            $("#sign-up #your_email").find("div.merror").text(res);
350            $('#email').focus();
351            return true;
352        } else {
353            MovetoNext(true);
354        }
355    });
356}
357function mobCode() {
358
359    var params = {};
360    params.cCode = $('#countryCode').val();
361    ajx('POST', params, 'site/mobileCodes', 'html', function (res) {
362        console.log(res);
363        if (res == '') {
364            $('#mobCdDiv ').hide();
365            $('#mobileCode').find('option').remove();
366            $('#mobCdDiv select').attr("data-validate", "0");
367            $('#mobile').attr("maxlength", 10);
368            $(".merror").html("");
369        } else
370        {
371            $('#mobCdDiv select').attr("data-validate", "1");
372            $('#ldMcDiv').html(res);
373            $('#mobCdDiv').show();
374            $('#mobileCode').selectpicker();
375
376            $('#mobile').attr("maxlength", 7);
377            $(".merror").html("");
378        }
379    });
380}
381
382function forgetPwdEmail(token) {
383    var validator = $('#login-form').validate();
384    var validation = validator.form();
385    //console.log('test', validation);
386    if (validation === false) {
387        return; //commonAlert('warning', msg_form_warning);
388    }
389    var params = {};
390    params.emailAddress = $('#email').val();
391    if (typeof grecaptcha == 'object') { // if grecaptcha is defined i.e. recaptcha is loaded
392        params.userJetonRecaptcha = token;
393    }
394    ajx('POST', params, 'user/forgetpwd', '', function (resp) {
395        commonAlert('info', resp.response);
396        $('.mdt').text(resp.response);
397        $('#email').val('');
398        return false;
399    });
400}
401
402$(document).ready(function () {
403    // Open Login Model Window
404    var hashValue = window.location.hash;
405    if (hashValue == "#login") {
406        //console.log('test');
407        $('#login').trigger('click');
408    }
409    // Open Signup Model Window
410    if (hashValue == "#register") {
411        $('#signup').trigger('click');
412    }
413});
414
415function xhrRequest(url, type, data, successCallback, returnType = '') {
416    if(typeof rzTkn != 'undefined') {
417        data.rzTkn = rzTkn;
418    }
419    $.ajax({
420        url: url,
421        type: type,
422        data: data,
423        headers: {
424            //'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
425        }
426    })
427            .done(function (response) {
428                if (returnType == 'jsosn') {
429                    response = JSON.parse(response);
430                }
431                return successCallback(response);
432            })
433            .fail(function (res) {
434
435                try {
436                    if (typeof grecaptcha == 'object') { // if grecaptcha is defined i.e. recaptcha is loaded
437                        grecaptcha.reset();
438                    }
439                } catch (e) {
440
441                }
442
443            });
444}
445
446
447$(document).delegate('#s4', 'click', function () {
448    if (this.checked) {
449        $('#showMobArea').css('display', 'block');
450    } else {
451        $('#showMobArea').css('display', 'none');
452    }
453});
454$(document).delegate('#searchFacetBtn', 'click', function () {
455    var checked_facets = new Array();
456    var facets_keys = new Array();
457    var facets_values = new Array();
458    var q = $('#search_keyword').val();
459    if (typeof q === "undefined" || q === null || q === "") {
460        q = 'all';
461    }
462    var search_url;
463    if (typeof searchUrl !== 'undefined' && searchUrl !== '') {
464        search_url = site_url + searchUrl + '/q/' + q;
465    } else {
466        search_url = site_url + 'job/jsearch/q/' + q;
467    }
468    //    var fcn = $('#facet_company').val();
469    //    if (typeof fcn !== "undefined" && fcn !== '' && fcn !== null) {
470    //        search_url += '/fcn/' + fcn;
471    //    }
472    //console.log(' FCO : ', fcn);
473    var fp = $('#facet_package').val();
474    if (typeof fp !== "undefined" && fp !== '' && fp !== null) {
475        search_url += '/fp/' + fp;
476    }
477    var fs = $('#salary_facet').val();
478    //console.log(' FS : ', fs);
479    if (typeof fs !== "undefined" && fs !== '' && fs !== null) {
480        search_url += '/fs/' + fs;
481    }
482    var current_page_url = $('#current_page_url').val();
483    var channel_facet = $('#channel_facet').val();
484    $('input:checkbox[class=jobFacets]:checked').each(function () {
485        var params = {};
486        params.facet_value = $(this).data('fid');
487        params.facet_id = $(this).attr('id');
488        params.facet_key = $(this).data('fkey');
489        checked_facets.push(params);
490    });
491    //console.log('checkedFacets: ', checked_facets);
492    if (typeof channel_facet !== "undefined" && channel_facet !== "") {
493        for (var i in checked_facets) {
494            if (checked_facets[i].facet_key !== 'fch' && checked_facets[i].facet_value !== channel_facet) {
495                checked_facets.push({'facet_key': 'fch', 'facet_value': channel_facet, 'facet_id': 'fch_' + channel_facet})
496            }
497        }
498    }
499    //console.log('Checked Facets: ', channel_facet);
500    //console.log('Checked Facets: ', checked_facets);
501
502    for (var i in checked_facets) {
503        if ($.inArray(checked_facets[i].facet_key, facets_keys) !== -1) {
504            //console.log('found ', checked_facets[i].facet_key);
505            //find fecet key and concatinate value
506            for (var j in facets_values) {
507                if (facets_values[j].key === checked_facets[i].facet_key) {
508                    //console.log('concat value: ', checked_facets[i].facet_value);
509                    facets_values[j].value += ":" + checked_facets[i].facet_value;
510                }
511            }
512        } else {//not found
513            //console.log('Not found ', checked_facets[i].facet_key);
514            facets_keys.push(checked_facets[i].facet_key);
515            facets_values.push({'key': checked_facets[i].facet_key, 'value': checked_facets[i].facet_value});
516        }
517    }
518    //console.log('FacetsKey : ', facets_keys);
519    //console.log('FacetsValues : ', facets_values);
520    //finalizing url
521    for (var i in facets_values) {
522        search_url += "/" + facets_values[i].key + "/" + facets_values[i].value;
523    }
524    //console.log('New Url: ', search_url);
525    clean_url = search_url.replace(/([^:]\/)\/+/g, "$1");
526    window.location = search_url;
527});
528
529function getCheckedFacetsData(json) {
530    json = (typeof json !== 'undefined') ? json : false; //serialized in default
531    var checked_facets = new Array();
532    var facets_keys = new Array();
533    var facets_values = new Array();
534    $('input:checkbox[class=jobFacets]:checked').each(function () {
535        var params = {};
536        params.facet_value = $(this).data('fid');
537        params.facet_id = $(this).attr('id');
538        params.facet_key = $(this).data('fkey');
539        checked_facets.push(params);
540    });
541    for (var i in checked_facets) {
542        if ($.inArray(checked_facets[i].facet_key, facets_keys) !== -1) {
543//console.log('found ', checked_facets[i].facet_key);
544//find fecet key and concatinate value
545            for (var j in facets_values) {
546                if (facets_values[j].key === checked_facets[i].facet_key) {
547                    //console.log('concat value: ', checked_facets[i].facet_value);
548                    facets_values[j].value += ":" + checked_facets[i].facet_value;
549                }
550            }
551        } else {//not found
552//console.log('Not found ', checked_facets[i].facet_key);
553            facets_keys.push(checked_facets[i].facet_key);
554            facets_values.push({'key': checked_facets[i].facet_key, 'value': checked_facets[i].facet_value});
555        }
556    }
557//console.log('FacetsKey : ', facets_keys);
558//console.log('FacetsValues : ', facets_values);
559
560    var q = $('input[name=keyword]').val();
561    q = (typeof q !== 'undefined' && q !== null) ? q : '';
562    if ($('.advancedSearch').attr('aria-expanded') === "true") {
563        q = (typeof $('input[name=q]').val() !== 'undefined') ? $('input[name=q]').val() : '';
564    }
565
566    var postData = 'q=' + q;
567    var jsonData = {'q': q};
568    if (facets_values.length > 0) {
569        for (var i in facets_values) {
570//console.log('=> ', facets_values[i]);
571            postData += '&' + facets_values[i].key + '=' + facets_values[i].value;
572            jsonData[facets_values[i].key] = facets_values[i].value;
573        }
574    }
575    var fDate = $('input[name=fDate]').val() || '';
576    var tDate = $('input[name=tDate]').val() || '';
577    if ((typeof fDate !== 'undefined' && fDate !== '') || (typeof tDate !== 'undefined' && tDate !== '')) {
578        postData += '&fDate=' + fDate + '&tDate=' + tDate;
579        jsonData['fDate'] = fDate;
580        jsonData['tDate'] = tDate;
581    }
582    if (q !== '' || fDate !== '' || tDate !== '' || facets_values.length > 0) {
583        //facets applied save in localstorage
584        postData += '&searchSolr=Y';
585        localStorage.setItem('searchSolr', 'Y');
586        jsonData['searchSolr'] = 'Y';
587    }
588    //console.log('POST DATA: ', postData);
589    //console.log('POST DATA JSON: ', jsonData);
590    if (json === true) {
591        return jsonData;
592    }
593    return postData;
594}
595
596
597function checkFacetStatus(facetvalues, key, value) {
598    //console.log('checkFcets: ', facetvalues);
599    for (var i in facetvalues) {
600        facetValue = facetvalues[i].value;
601        if (facetValue === null || facetValue === 'undefined') {
602            continue;
603        }
604
605        if (typeof facetValue !== 'undefined') {
606            facetValue = facetValue.toString();
607        }
608        if (typeof value !== 'undefined') {
609            value = value.toString();
610        }
611        try {
612            var valuesArr = facetValue.split(":");
613        } catch (e) {
614            //console.warn('Error: ', e);
615        }
616//        console.log(' value in array: ' + value, valuesArr);
617//        console.log(' Key : ' + key, facetvalues[i].key);
618//        console.log('In Array: => ', $.inArray(value, valuesArr));
619        if ($.inArray(value, valuesArr) !== -1 && key === facetvalues[i].key) {
620            return 'checked';
621        }
622    }
623    return '';
624
625}
626
627$(document).delegate('#resetFacetBtn', 'click', function () {
628    window.location = site_url + 'job/jsearch/q/all';
629});
630function authenticate(backUrl) {
631    var redirectTo = seeker_url + 'login';
632    var data = {};
633    if (typeof backUrl === "undefined") {
634        data.redirectUrl = location.href;
635    } else {
636        data.redirectUrl = backUrl;
637    }
638    localStorage.setItem('lastUrl', data.redirectUrl);
639    var successCallback = function (res, statusText, jqXHR) {
640        if (res.code === 200) {
641            window.location = redirectTo;
642        }
643    };
644    var url = ajax_url + 'site/saveLastURL';
645    xhrRequest(url, 'POST', data, successCallback);
646}
647
648function saveJobStartup(jobId, compId, source) {
649//console.log($('.btn_'+jobId).text());
650    //changeState('.btn_' + jobId, msg_saving, true);
651    $("#savejob_loader").removeClass('d-none');
652    $("#save_job").addClass('d-none');
653    $('.btn_' + jobId).attr('disabled', 'disabled');
654    var data = {};
655    data.jobId = jobId;
656    data.sourcePage = source;
657    data.companyId = compId;
658    var successCallback = function (res, statusText, jqXHR) {
659        //console.log('Response: ', jqXHR);
660        $("#savejob_loader").addClass('d-none');
661        var response = $.parseJSON(res);
662        try {
663            if (response.code == 200) {
664                //$("#save_job").addClass('d-none');
665                $("#save_job").parents(".save-job").append('<a href="javascript:void(0)" class="btn btn-secondary mt10 btn-block" id="saved_job">Saved</a>');
666                $('.btn_' + jobId).addClass('active').removeAttr('disabled').attr('title', msg_saved);
667                $('.btn_' + jobId).removeAttr('onclick');
668                if (source == 'jobdetail') {
669                    $('.btn_' + jobId).addClass('disabled');
670                    $('.btn_' + jobId).addClass(msg_saved);
671                }
672                $('.btn_' + jobId).attr('disabled', 'disabled');
673                $('#saveJobSuccess').slideDown();
674                setTimeout(function () {
675                    $('#saveJobSuccess').slideUp();
676                }, 10000);
677            } else if (response.code === 401) {
678                console.log('res: ', response);
679                authenticate();
680                console.log('res =>: ', response.code);
681                //var url = $('#login').data('target');
682                //openOverlay(url);
683            } else {
684                $("#save_job").removeClass('d-none');
685                changeState('.btn_' + jobId, msg_save, false);
686                $('#saveJobFailed').slideDown();
687                setTimeout(function () {
688                    $('#saveJobSuccess').slideUp();
689                }, 10000);
690            }
691        } catch (e) {
692            $("#savejob_loader").addClass('d-none');
693            $("#save_job").removeClass('d-none');
694            //console.error('Error: ', res);
695            $('.btn_' + jobId).addClass(msg_save);
696            $('.btn_' + jobId).removeClass('disabled');
697            $('#saveJobFailed').slideDown();
698            //$('.btn_' + jobId).text('Error');
699        }
700    };
701    var url = ajax_url + 'job/saveJob';
702    xhrRequest(url, 'POST', data, successCallback);
703}
704function saveJob(jobId, compId, source) {
705//console.log($('.btn_'+jobId).text());
706    //changeState('.btn_' + jobId, msg_saving, true);
707    $("#savejob_loader").removeClass('d-none');
708    $("#save_job").addClass('d-none');
709    $('.btn_' + jobId).attr('disabled', 'disabled');
710    var data = {};
711    data.jobId = jobId;
712    data.sourcePage = source;
713    data.companyId = compId;
714    var successCallback = function (res, statusText, jqXHR) {
715        //console.log('Response: ', jqXHR);
716        $("#savejob_loader").addClass('d-none');
717        var response = $.parseJSON(res);
718        try {
719            if (response.code == 200) {
720                //$("#save_job").addClass('d-none');
721                $("#save_job").parents(".save-job").append('<a href="javascript:void(0)" class="btn btn-secondary mt10 btn-block" id="saved_job">Saved</a>');
722                $('.btn_' + jobId).addClass('active').removeAttr('disabled').attr('title', msg_saved);
723                $('.btn_' + jobId).removeAttr('onclick');
724                if (source == 'jobdetail') {
725                    $('.btn_' + jobId).addClass('disabled');
726                    $('.btn_' + jobId).html(msg_saved);
727                }
728                $('.btn_' + jobId).attr('disabled', 'disabled');
729                $('#saveJobSuccess').slideDown();
730                setTimeout(function () {
731                    $('#saveJobSuccess').slideUp();
732                }, 10000);
733            } else if (response.code === 401) {
734                console.log('res: ', response);
735                authenticate();
736                console.log('res =>: ', response.code);
737                //var url = $('#login').data('target');
738                //openOverlay(url);
739            } else {
740                $("#save_job").removeClass('d-none');
741                changeState('.btn_' + jobId, msg_save, false);
742                $('#saveJobFailed').slideDown();
743                setTimeout(function () {
744                    $('#saveJobSuccess').slideUp();
745                }, 10000);
746            }
747        } catch (e) {
748            $("#savejob_loader").addClass('d-none');
749            $("#save_job").removeClass('d-none');
750            //console.error('Error: ', res);
751            $('.btn_' + jobId).text(msg_save);
752            $('.btn_' + jobId).removeClass('disabled');
753            $('#saveJobFailed').slideDown();
754            //$('.btn_' + jobId).text('Error');
755        }
756    };
757    var url = ajax_url + 'job/saveJob';
758    xhrRequest(url, 'POST', data, successCallback);
759}
760
761function showMessages(type, msg) {
762    $('#alertMessages').find('span').html(msg);
763    $('#alertMessages').addClass('alert-' + type);
764    $('#alertMessages').show();
765    setTimeout(function () {
766        $('#alertMessages').hide();
767    }, 15000);
768    $("html, body").animate({scrollTop: 0}, "slow");
769}
770
771function commonAlert(type, msg, noHide, msgDiv) {
772
773    noHide = (typeof noHide === "undefined") ? 'hide' : noHide;
774    type = (typeof type === "undefined") ? 'success' : type;
775    msgDiv = (typeof msgDiv === "undefined") ? 'messageContainer' : msgDiv;
776
777    var alertMsg = '<div class="alert alert-' + type + ' alert-dismissable" role="alert" style="position:relative;"> <p>' + msg + '  <i class="rz-cross cstm pull-right" data-dismiss="alert" style="position:absolute; top:18px; right:10px; z-index:111;" onClick="$(this).parents(\'.alert\').hide()"></i></p> </div> </div>';
778    if (msgDiv.includes('.')) {
779        $(msgDiv).html(alertMsg);
780    } else {
781        $('#' + msgDiv).html(alertMsg);
782    }
783    if (noHide == 'hide') {
784        setTimeout(function () {
785            $('#' + msgDiv).html('');
786        }, 10000);
787    }
788}
789
790function navigateMSG(id) {
791    id = (typeof id !== 'undefined') ? id : 'messageContainer';
792    $('body, html').animate({scrollTop: $('#' + id).offset().top - 100}, 600);
793}
794
795function changeState(element, text, isLoading) {
796    if (text !== null && text !== false) {
797        $(element).html(text);
798    }
799    if (isLoading === true) {
800        $(element).addClass('disabled');
801        $(element).attr('disabled', 'disabled');
802    } else {
803        $(element).removeClass('disabled');
804        $(element).removeAttr('disabled');
805        $(element).prop('disabled', false);
806    }
807}
808
809$(document).delegate('.followCompany', 'click', function () {
810    var data = {};
811    data.company_name = $(this).data('cname');
812    data.company_id = $(this).data('cid');
813    // var id = $(this).data('id');
814    var id = $(this).attr('id');
815    changeState('#' + id, msg_following + '..', true);
816    var successCallback = function (response, statusText, jqXHR) {
817            if (response.code === 200) {
818                $('#' + id).addClass('unfollowedCompany');
819                $('#' + id).removeClass('followCompany');
820                changeState('#' + id, msg_unfollow, false);
821                if($('.fCount') != undefined) {
822                    $('.fCount').html(response.tf);
823                }
824            } else if (response.code === 401) {
825                var url = $('#login').data('target');
826                openOverlay(url);
827            } else {
828                changeState('#' + id, msg_follow, false);
829                $('#' + id).removeClass('unfollowedCompany');
830                $('#' + id).removeClass('disabled');
831                showMessages('danger', response.message);
832            }
833    };
834    var url = ajax_url + 'company/follow';
835    xhrRequest(url, 'POST', data, successCallback);
836});
837//unfollowedCompany
838$(document).delegate('.unfollowedCompany', 'click', function () {
839    var data = {};
840    data.company_name = $(this).data('cname');
841    data.company_id = $(this).data('cid');
842    // var id = $(this).data('id');
843    var id = $(this).attr('id');
844    changeState('#' + id, msg_unfollowing + '...', true);
845    var successCallback = function (response, statusText, jqXHR) {
846            if (response.code === 200) {
847                changeState('#' + id, msg_follow, false);
848                $('#' + id).removeClass('unfollowedCompany');
849                $('#' + id).addClass('followCompany');
850                if($('.fCount') != undefined) {
851                    $('.fCount').html(response.tf);
852                }
853            } else if (response.code === 401) {
854                var url = $('#login').data('target');
855                openOverlay(url);
856            } else {
857                changeState('#' + id, msg_unfollow, false);
858                $('#' + id).removeClass('followCompany');
859                showMessages('danger', response.message);
860            }
861    };
862    var url = ajax_url + 'company/unfollow';
863    xhrRequest(url, 'POST', data, successCallback);
864});
865
866$(document).delegate('.followCompany1', 'click', function () {
867    var data = {};
868    data.company_name = $(this).data('cname');
869    data.company_id = $(this).data('cid');
870    var id = $(this).data('id');
871
872    // var id = $(this).attr('id');
873    changeState('.' + id, msg_following + '..', true);
874    var successCallback = function (response, statusText, jqXHR) {
875            if (response.code === 200) {
876                $('.' + id).addClass('unfollowedCompany1');
877                $('.' + id).removeClass('followCompany1');
878                changeState('.' + id, msg_unfollow, false);
879                if($('.fCount') != undefined) {
880                    $('.fCount').html(response.tf);
881                }
882            } else if (response.code === 401) {
883                var url = $('#login').data('target');
884                openOverlay(url);
885            } else {
886                changeState('.' + id, msg_follow, false);
887                $('.' + id).removeClass('unfollowedCompany1');
888                $('.' + id).removeClass('disabled');
889                showMessages('danger', response.message);
890            }
891    };
892    var url = ajax_url + 'company/follow';
893    xhrRequest(url, 'POST', data, successCallback);
894});
895//unfollowedCompany
896$(document).delegate('.unfollowedCompany1', 'click', function () {
897    var data = {};
898    data.company_name = $(this).data('cname');
899    data.company_id = $(this).data('cid');
900    var id = $(this).data('id');
901    // var id = $(this).attr('id');
902    changeState('.' + id, msg_unfollowing + '...', true);
903    var successCallback = function (response, statusText, jqXHR) {
904            if (response.code === 200) {
905                changeState('.' + id, msg_follow, false);
906                $('.' + id).removeClass('unfollowedCompany1');
907                $('.' + id).addClass('followCompany1');
908                if($('.fCount') != undefined) {
909                    $('.fCount').html(response.tf);
910                }
911            } else if (response.code === 401) {
912                var url = $('#login').data('target');
913                openOverlay(url);
914            } else {
915                changeState('.' + id, msg_unfollow, false);
916                $('.' + id).removeClass('followCompany1');
917                showMessages('danger', response.message);
918            }
919    };
920    var url = ajax_url + 'company/unfollow';
921    xhrRequest(url, 'POST', data, successCallback);
922});
923
924function jobAlertModel() {
925    var validator = $('#saveJobAlert-form').validate();
926    validator.resetForm();
927    validator.reset();
928    $('#messageContainer').html();
929
930    $('.has-error').each(function () {
931        $(this).removeClass('has-error');
932    });
933
934    $('#SaveJob').modal({
935        show: 'true'
936    });
937}
938
939function emailToFriendModal(jid, title, permaLink) {
940    $('#jobId').val(jid);
941    $('#subject').val(title);
942    $('#message').text(permaLink);
943    $('#EmailFrnd').modal({
944        show: 'true'
945    });
946}
947
948function saveJobAlert() {
949
950    if ($('input[name=keyword_search_in]:checked').length == 0) {
951        $('input[name=keyword_search_in]').closest('.form-group').addClass('has-error');
952        $('.keyword-error').next().remove();
953        requiredMessage = $('#requiredMessage').val();
954        $('.keyword_search_in').after('<div class="keyword-error clearfix"></div><span for="keyword_search_in" class="keyword-search-error help-block">' + requiredMessage + '</span>');
955        changeState('#saveJobAlert_btn', msg_save, false);
956        var flag = true;
957    } else {
958        $('input[name=keyword_search_in]').closest('.form-group').removeClass('has-error');
959        $('.keyword-error').next().remove();
960        $('input[name=keyword_search_in]').closest('.keyword-error').remove();
961        var flag = false;
962        changeState('#saveJobAlert_btn', msg_save, false);
963    }
964
965    var validator = $('#saveJobAlert-form').validate();
966    var validation = validator.form();
967    if (validation === false || flag) {
968        if (flag) {
969            $('.keyword-search-error').show();
970        }
971
972        return commonAlert('warning', msg_form_validation_warning);
973    }
974
975    changeState('#saveJobAlert_btn', msg_saving, true);
976    var data = {};
977    data.keyword_search_in = '';
978
979
980    $('input[name=keyword_search_in]:checked').each(function (i) {
981        data.keyword_search_in += $(this).val();
982    });
983
984    //console.log(data);
985    data.gender = $('select[name=gender]').val();
986    data.careerLevel = $('select[name=careerLevel]').val();
987    data.minExperience = $('select[name=minExperience]').val();
988    data.expSalary = $('select[name=expSalary]').val();
989    data.city = $('#userCity').val();
990    //console.log('city: ', data.city);
991    data.email = $('input[name=email]').val();
992    //console.log('email: ', data.email);
993
994    data.countryCode = $('select[name=countryCode]').val();
995    data.mobileCode = $('select[name=mobileCode]').val();
996    data.mobileNumber = $('input[name=mobileNumber]').val();
997    data.searchAlert = $('input[name=searchAlert]').val();
998    data.currentJobURL = $('input[name=currentJobURL]').val();
999    data.keywords = $('input[name=keywords]').val();
1000
1001    data.rzTkn = $("input[name=rzTkn]").val();
1002    if (typeof $('input[name=currentJobAlertID]').val() !== 'undefined') {
1003        data.alertID = $('input[name=currentJobAlertID]').val();
1004    }
1005    //console.log('Data: ', data);
1006    var successCallback = function (jqXHR) {
1007        changeState('#saveJobAlert_btn', msg_save, false);
1008        if (jqXHR.status === true) {
1009            var response = jqXHR;
1010            if (response.code === 200) {
1011                $('#saveJobAlert-form')[0].reset();
1012                //console.log('messages: ', response.message);
1013                if (response.message instanceof Array) {
1014                    for (var i in response.message) {
1015                        //console.log(response.message[i]);
1016                        commonAlert('success', response.message[i]);
1017                    }
1018                } else {
1019                    var type = (typeof response.type === "undefined") ? 'success' : response.type;
1020                    var user = (typeof response.user === "undefined") ? '' : response.user;
1021                    if (type === 'success') {
1022                        showMessages(type, response.message);
1023                        commonAlert(
1024                                "success",
1025                                response.message
1026                                );
1027                        setTimeout(function () {
1028                            $('#SaveJob').modal('hide');
1029                        }, 2000);
1030                        setTimeout(function () {
1031                            if (typeof alert_id !== 'undefined') {
1032                                location = site_url + 'my-job-alerts';
1033                                commonAlert('success', msg_alert_updated);
1034                            } else if (user != 'guest') {
1035                                //window.open(site_url + 'my-job-alerts', '_blank');
1036                                window.location = site_url + 'my-job-alerts';
1037                            }
1038                        }, 3500);
1039                        return;
1040                    } else {
1041                        commonAlert(type, response.message);
1042                    }
1043                }
1044            } else if (response.code === 401) {
1045                return authenticate();
1046            } else {
1047                return commonAlert('danger', response.message);
1048            }
1049        } else {
1050            console.error("Error: ", jqXHR);
1051            return commonAlert(
1052                    "danger",
1053                    "An Error Occured! "
1054                    );
1055        }
1056    };
1057    var url = ajax_url + 'job/saveJobAlert';
1058    xhrRequest(url, 'POST', data, successCallback, 'jsosn');
1059}
1060function resendRegCode() {
1061    var params = {};
1062    params.email = $('#userEmail').val();
1063    ajx('POST', params, 'user/resendregcode', '', function (resp) {
1064        $('.incorCode').hide();
1065        commonAlert('success', resp.response);
1066
1067    });
1068}
1069function setintPA(jid, sc) {
1070
1071    $("#paCallLd").show();
1072    var params = {};
1073    params.jid = jid;
1074    params.score = sc;
1075    ajx('POST', params, 'job/expertCall', 'html', function (res) {
1076
1077        $("#paCallLd").hide();
1078        $("#paCallImg").show();
1079        if (res == 'SUC')
1080            $("#paCallMsg").show();
1081    });
1082}
1083
1084
1085
1086//===================== FORMATE CURRENCY ==================
1087function addCommas(str) {
1088    var parts = (str + "").split("."),
1089            main = parts[0],
1090            len = main.length,
1091            output = "",
1092            i = len - 1;
1093    while (i >= 0) {
1094        output = main.charAt(i) + output;
1095        if ((len - i) % 3 === 0 && i > 0) {
1096            output = "," + output;
1097        }
1098        --i;
1099    }
1100// put decimal part back
1101    if (parts.length > 1) {
1102        output += "." + parts[1];
1103    }
1104    return output;
1105}
1106
1107function savePACallData() {
1108    var formId = "#callPA-form";
1109    var validator = $(formId).validate();
1110    if (validator.form() === false) {
1111        return;
1112    }
1113    commonAlert('info', msg_plz_wait);
1114    var data = $(formId).serialize();
1115    //console.log('f1 data: ', data);
1116    var successCallback = function (res, statusText, jqXHR) {
1117
1118        if (jqXHR.status == 200) {
1119            resp = $.parseJSON(res);
1120            commonAlert(resp.type, resp.message);
1121            if (res.status == 200) {
1122                $(formId)[0].reset();
1123            }
1124        } else {
1125            console.error('Error: ', res);
1126        }
1127    };
1128    var url = ajax_url + 'site/savePAquery';
1129    xhrRequest(url, 'POST', data, successCallback);
1130}
1131
1132function captchaModal(fromPage) {
1133    var formId = '';
1134    if (fromPage == 'savePAQueryData') {
1135        formId = '#queryPA-form';
1136    }
1137    if (fromPage == 'savePACallData') {
1138        formId = '#callPA-form';
1139    }
1140    var validator = $(formId).validate();
1141    if (validator.form() === false) {
1142        return;
1143    }
1144    $('.captchaModal').modal();
1145    if (typeof grecaptcha == 'object') { // if grecaptcha is defined i.e. recaptcha is loaded
1146        container = $('#captchaContainer').html();
1147        if (container == '') {
1148            loadCaptcha(fromPage);
1149        } else {
1150            grecaptcha.reset();
1151        }
1152    }
1153}
1154
1155function savePAQueryData() {
1156    var formId = "#queryPA-form";
1157    var validator = $(formId).validate();
1158    if (validator.form() === false) {
1159        return;
1160    }
1161    var data = $(formId).serialize();
1162    commonAlert('info', msg_plz_wait);
1163    var successCallback = function (res, statusText, jqXHR) {
1164        if (jqXHR.status == 200) {
1165            resp = $.parseJSON(res);
1166            commonAlert(resp.type, resp.message);
1167            if (res.status == 200) {
1168                $(formId)[0].reset();
1169            }
1170        } else {
1171            console.error('Error: ', res);
1172        }
1173    };
1174    var url = ajax_url + 'site/savePAquery';
1175    xhrRequest(url, 'POST', data, successCallback);
1176}
1177
1178/*
1179 * Adding CV Write Packages
1180 */
1181$(document).delegate('.addCartPackagesCV', 'click', function () {
1182    changeState(this, msg_plz_wait, true);
1183    var checked_packages = [];
1184    var data = {};
1185    $('input[name="chk_executive"]:checked').each(function () {
1186        var params = {};
1187        params.spID = $(this).val();
1188        params.totalPrice = $(this).data('price');
1189        params.itemId = $(this).attr('id');
1190        params.pack_code = $(this).data('pack_code');
1191        checked_packages.push(params);
1192    });
1193    if (checked_packages.length > 0) {
1194        data.packages = checked_packages;
1195        data.rztkn_product_purchase = rztkn_product_purchase;
1196        var successCallback = function (res, statusText, jqXHR) {
1197            //console.log('Response: '+ typeof jqXHR, jqXHR);
1198            //console.log('Response: '+ typeof res, res);
1199            if (res != undefined && res.code != undefined) {
1200                if (res.code == 401) {
1201                    authenticate();
1202                    return false;
1203                }
1204                commonAlert(res.type, res.message);
1205                if (res.code === 200) {
1206                    //alert(res.url);
1207                    window.location = res.url;
1208                }
1209            } else {
1210                console.error('Error: ', res);
1211                changeState(this, msg_add_cart, false);
1212            }
1213        };
1214        var url = ajax_url + 'site/saveCVpackages';
1215        console.log(data);
1216        xhrRequest(url, 'POST', data, successCallback);
1217    } else {
1218        changeState(this, msg_add_cart, false);
1219        commonAlert('warning', msg_no_pkg_select);
1220    }
1221});
1222
1223$(document).delegate('.pkgTab', 'click', function () {
1224    $('input:checkbox[name="chk_executive"]').prop('checked', false);
1225});
1226
1227if ($('.job_title').length > 0) {
1228    jobSearchMS = $('.job_title').magicSuggest({
1229        data: ajax_url + 'job/keywordSuggestion/',
1230        queryParam: 'term',
1231        hideTrigger: true,
1232        //dataUrlParams: true,
1233        //resultAsString: true,
1234        //resultAsStringDelimeter: ', ',
1235        //allowFreeEntries: false,
1236        //strictSuggest: true,
1237        maxSelection: 2,
1238        useCommaKey: true,
1239        valueField: 'name',
1240        renderer: function (data) {
1241            //console.log('=> DATA: ', data);
1242            //$titleData =[];
1243            html = '';
1244            if (data.index == 0) {
1245                title = data.id;
1246                html = '<div class="head"><strong> SUGGESTION FOR: ' + title.toUpperCase() + '</strong></div>';
1247            }
1248            html += '<div class="' + data.id + '" data-heading=" SUGGESTION FOR: ' + data.id + '"> <p>' + data.name + '</p><div>';
1249            return html;
1250
1251        },
1252        resultAsString: true
1253    });
1254    var jobTitleHide = $('#jobTitleH').val();
1255    if (typeof jobTitleHide !== "undefined") {
1256        var titlesArr = jobTitleHide.split(',');
1257        var keywords = [];
1258        titlesArr.forEach(function (title) {
1259            keywords.push({'name': title});
1260        });
1261        jobSearchMS.addToSelection(keywords);
1262    }
1263}
1264
1265
1266// Hiring Dashbaord: Update Default Company
1267$(document).delegate('#defaultCompany', 'change', function () {
1268    //waiting state
1269    var element = this;
1270    changeState(element, null, true);
1271    var successCallback = function (res, statusText, jqXHR) {
1272        //console.log('Response: '+ typeof jqXHR, jqXHR);
1273        //console.log('Response: '+ typeof res, res);
1274        changeState(element, null, false);
1275
1276        //if (jqXHR.status === 200) {
1277        if (res.code === 200) {
1278            location.reload();
1279            //commonAlert(res.type, res.message);
1280        } else {
1281            if (res.code === 401) {
1282                authenticate();
1283            }
1284            console.error('Error: ', res);
1285        }
1286    };
1287    var url = ajax_url + 'dashboard/updateDefaultCompany';
1288    xhrRequest(url, 'POST', {'id': $(this).val()}, successCallback);
1289});
1290
1291// Handle Broken Images
1292$(function () {
1293    $('img').on('error', function () {
1294        imageError(this);
1295    });
1296});
1297
1298function getCitiesList(country, citySel, cityTxt) {
1299    citySel = (typeof citySel === "undefined" || citySel === "" ? 'citySrchAdv' : citySel);
1300    cityTxt = (typeof cityTxt === "undefined" || cityTxt === "" ? 'cityTxt' : cityTxt);
1301
1302    if (country == '114' || country == '116') { // USA OR Canada
1303        $('#' + cityTxt).val('');
1304        $('#' + cityTxt).removeClass('hide');
1305        $('#' + citySel).addClass('hide');
1306        $('#' + citySel).selectpicker('hide');
1307
1308        return;
1309    } else if (country == '') {
1310        $('#' + citySel).val('');
1311        $('#' + citySel).selectpicker('refresh');
1312        $('#' + citySel).prop('disabled', 'disabled');
1313
1314        return;
1315    } else {
1316        $('#' + citySel).removeClass('hide');
1317        $('#' + citySel).show();
1318        $('#' + citySel).selectpicker('show');
1319        $('#' + citySel).prop('disabled', false);
1320        $('#' + citySel).selectpicker('refresh');
1321        $('#' + cityTxt).addClass('hide');
1322        $('#' + cityTxt).val('');
1323    }
1324
1325    $.getJSON(site_url + 'services/site/getcitieslist/?country_id=' + country, function (response) {
1326        if (response.success) {
1327            //$('#' + citySel).find('option').not(':first').remove();
1328            $('#' + citySel).find('option').remove();
1329            $.each(response.cities, function (index, item) {
1330                $('#' + citySel).append($('<option></option>').attr('value', item.cityID).data('city', item.city).text(item.city));
1331
1332            });
1333
1334            $('#' + citySel).selectpicker('refresh');
1335        }
1336    });
1337} // get cities list
1338
1339function saveAgayBarhoSubscribe() {
1340    var validator = $('#agayBarhoSubForm').validate();
1341    var validation = validator.form();
1342    if (validation === false) {
1343        return false;
1344    }
1345    $('#btnDiv').hide();
1346    $('#agayBarhoWait').show();
1347    var params = $('#agayBarhoSubForm').serialize();
1348    var callback = function (resp) {
1349        if (resp.status === false) {
1350            $('#btnDiv').show();
1351            $('#agayBarhoWait').hide();
1352            $('#errorMsg').find('ul.merror').remove();
1353            $('#errorMsg').removeClass('hide');
1354            $('#errorMsg').addClass('alert-success');
1355            var ul = $('#errorMsg:last').append('<ul class="merror mt10 s-24"></ul>').find('ul.merror');
1356            ;
1357            $.each(resp.response, function (field, message) {
1358                ul.append('<li>' + message + '</li>');
1359            });
1360            setTimeout(function () {
1361                $('#errorMsg:last').find('ul.merror').remove();
1362                $('#errorMsg').removeClass('alert-success');
1363                $('#errorMsg').addClass('hide');
1364
1365            }, 8000);
1366            return false;
1367        } else {
1368
1369            //$('#agayBarhoWait').addClass('hide');
1370            // $('#success').removeClass('hide');
1371            window.location.href = resp.url;
1372
1373        }
1374    };
1375    ajx('POST', params, 'site/saveAgayBarhoSubscribe', '', callback);
1376}
1377function getCityByCountry() {
1378
1379    var params = {};
1380    var countryData = $('#country_id').val();
1381    var countryArr = countryData.split(",");
1382    var country;
1383    params.country_id = country = countryArr[0];
1384    if (countryArr[2] == '+92' || countryArr[2] == '+966') {
1385
1386        getMobileCodeByCountryCode(countryArr[2]);
1387        $('#mobCdDiv').show();
1388        $("#badm").hide();
1389        $("#badm").parent(".col-md-12").removeClass("col-md-12").addClass("col-md-9");
1390        $('#mobileCode option:selected').removeAttr('selected');
1391        $('#mobile').attr("maxlength", 7);
1392        $('#mobile').val('');
1393    } else {
1394        $('#mobCdDiv').hide();
1395        $("#badm").show();
1396        $("#badm").parent(".col-md-9").removeClass("col-md-9").addClass("col-md-12");
1397        $('#mobileCode option:selected').removeAttr('selected');
1398        $('#mobile').attr("maxlength", 20);
1399        $('#mobile').val('');
1400    }
1401    if (country == '') {
1402        return;
1403    } else if (country == '114' || country == '116') {
1404        $('#city_id').find('option').remove();
1405        $('.cityDD').hide();
1406        $('#cityDiv').append('<input type="text" class="form-control s-18 cityField" name="city_id" id="cityField"  placeholder="Please enter the city name">');
1407        return;
1408    }
1409    var callback = function (resp) {
1410        if (resp.success === true) {
1411            $('#cityDiv').show();
1412            $('#cityField').remove();
1413            $('#city_id').find('option').remove();
1414            $('.cityDD').show();
1415            $('#city_id').append('<option value="" id="cityLbl">' + cityLabel + '</option>');
1416            $.each(resp.cities, function (index, item) {
1417                $('#city_id').append($('<option></option>').attr('value', item.cityID).data('city', item.city).text(item.city));
1418            });
1419        } else {
1420            $('#city_id').find('option').remove();
1421            $('#cityDiv').hide();
1422        }
1423    };
1424    ajx('GET', params, 'site/getCities', '', callback);
1425
1426}
1427function validateQty(event) {
1428
1429    var key = window.event ? event.keyCode : event.which;
1430    // 110 for decimal point
1431    if (event.keyCode == 8 || event.keyCode == 9
1432            || event.keyCode == 37 || event.keyCode == 39) {
1433        return true;
1434    } else if (key < 48 || key > 57) {
1435        return false;
1436    } else
1437        return true;
1438}
1439
1440function getMobileCodeByCountryCode(cntryCode) {
1441    if (cntryCode !== '' && cntryCode !== 'undefined') {
1442        var params = {};
1443        params.cCode = cntryCode;
1444        if (cntryCode == '+966') {
1445            $('#mobile').attr("maxlength", 10);
1446        }
1447        var callback = function (resp) {
1448            if (resp.status === true) {
1449                $('#mobile').val("");
1450                $('#mobileCode').find('option').remove();
1451                $('#mobileCode').append('<option  value="">
1451Choose Code</option>');
1452                var html = '';
1453                $.each(resp.response, function (index, item) {
1454                    html += '<option value=' + item + '>' + item + '</option>';
1455                });
1456
1457                $('#mobileCode').append(html);
1458            }
1459        };
1460        ajx('POST', params, 'site/getMobileCodesByCountryCode', '', callback);
1461    }
1462}
1463
1464function getMobileCodeByCountryCodeForApp(cntryCode, form) {
1465    if (cntryCode !== '' && cntryCode !== 'undefined') {
1466        var params = {};
1467        params.cCode = cntryCode;
1468        if (cntryCode == '+966') {
1469            $('#' + form + '#mobile').attr("maxlength", 10);
1470        }
1471        var callback = function (resp) {
1472            log(resp);
1473            if (resp.status === true) {
1474                $('#' + form + ' #mobile').val("");
1475                $('#' + form + ' #mobileCode').find('option').remove();
1476                var html = '';
1477                $.each(resp.response, function (index, item) {
1478                    html += '<option value=' + item + '>' + convertToArabic(item) + '</option>';
1479                });
1480                $('#' + form + ' #mobCdDiv').show();
1481                $('#' + form + ' #mobileCode').append(html);
1482            } else {
1483                $('#' + form + ' #mobileCode').find('option').remove();
1484                $('#' + form + ' #mobCdDiv').hide();
1485                $('#' + form + ' #mobile').attr("maxlength", 20);
1486            }
1487        };
1488        ajx('POST', params, 'site/getMobileCodesByCountryCode', '', callback);
1489    }
1490}
1491
1492function checkDate() {
1493
1494    $("#dobSp").attr("style", "display:block !important");
1495    var params = {};
1496    params.day = $('#day').val();
1497    params.month = $('#month').val();
1498    params.year = $('#year').val();
1499    ajx('POST', params, 'site/checkValidDate', '', function (res) {
1500
1501        $("#dobSp").attr("style", "");
1502        if (res.status == false)
1503            $("#sign-up #your_dob").find("div.merror").text(res.response);
1504        else
1505            MovetoNext(true);
1506    });
1507}
1508
1509function changePassword() {
1510    $('#alertDiv').hide();
1511    $('#alertDiv').removeClass();
1512
1513    var oldPassword = $('#oldPassword').val();
1514    var newPassword1 = $('#newPassword1').val();
1515    var newPassword2 = $('#newPassword2').val();
1516    if (oldPassword == '' || newPassword1 == '' || newPassword2 == '') {
1517        $('#alertDiv').removeClass();
1518        $('#alertDiv').addClass('alert alert-danger');
1519        $('#alertDiv').html(site170);
1520        $('#alertDiv').show();
1521        return;
1522    }
1523    if (newPassword1 !== newPassword2) {
1524        $('#alertDiv').removeClass();
1525        $('#alertDiv').addClass('alert alert-danger');
1526        $('#alertDiv').html(site169);
1527        $('#alertDiv').show();
1528        return;
1529    }
1530    if (newPassword1.length <= 7) {
1531        $('#alertDiv').removeClass();
1532        $('#alertDiv').addClass('alert alert-danger');
1533        $('#alertDiv').html(UCCheckAllowed ? site166 : site261);
1534        $('#alertDiv').show();
1535        return;
1536    }
1537    var passMatch = (/\d/.test(newPassword1) && /[a-z]/.test(newPassword1) && (UCCheckAllowed ? (/[A-Z]/.test(newPassword1)) : true));
1538    if (!passMatch) {
1539        $('#alertDiv').removeClass();
1540        $('#alertDiv').addClass('alert alert-danger');
1541        $('#alertDiv').html(UCCheckAllowed ? site166 : site261);
1542        $('#alertDiv').show();
1543        return;
1544    }
1545    $('.loading').show();
1546    $('.btnPass').addClass('disabled');
1547    var params = {};
1548    params.oldPassword = oldPassword;
1549    params.newPassword1 = newPassword1;
1550    params.newPassword2 = newPassword2;
1551    ajx('POST', params, 'user/changepassword', '', function (res) {
1552        $('.loading').hide();
1553        $('.btnPass').removeClass('disabled');
1554        if (typeof res.status !== 'undefined' && typeof res.msg !== 'undefined') {
1555            $('#alertDiv').removeClass();
1556            $('#alertDiv').addClass('alert alert-' + res.status);
1557            $('#alertDiv').html(res.msg);
1558            $('#alertDiv').show();
1559            $('.passIP').val('');
1560            setTimeout(function () {
1561                $('#alertDiv').hide();
1562            }, 5000);
1563            if (typeof res.url !== 'undefined') {
1564                setTimeout(function () {
1565                    location = res.url;
1566                }, 3000);
1567            }
1568            return;
1569        }
1570    });
1571    return;
1572}
1573
1574function changeEmail() {
1575    $('#alertDiv').hide();
1576    $('#alertDiv').removeClass();
1577
1578    var new_email = $('#new_email').val();
1579    var rz_password = $('#rz_password').val();
1580    if (new_email === '' || rz_password === '') {
1581        $('#alertDiv').removeClass();
1582        $('#alertDiv').addClass('alert alert-danger');
1583        $('#alertDiv').html(site170);
1584        $('#alertDiv').show();
1585        return;
1586    }
1587    if (!isValidEmail(new_email)) {
1588        $('#alertDiv').removeClass();
1589        $('#alertDiv').addClass('alert alert-danger');
1590        $('#alertDiv').html(site4);
1591        $('#alertDiv').show();
1592        return;
1593    }
1594    $('.loading').show();
1595    $('.btnEmail').addClass('disabled');
1596    var params = {};
1597    params.new_email = new_email;
1598    params.rz_password = rz_password;
1599    ajx('POST', params, 'user/changeemail', '', function (res) {
1600        $('.loading').hide();
1601        $('.btnPass').removeClass('disabled');
1602        if (typeof res.code !== 'undefined' && res.code === 401) {
1603            window.location.href = site_url + 'login';
1604            return;
1605        }
1606        if (typeof res.status !== 'undefined' && typeof res.msg !== 'undefined') {
1607            $('#alertDiv').removeClass();
1608            $('#alertDiv').addClass('alert alert-' + res.status);
1609            $('#alertDiv').html(res.msg);
1610            $('#alertDiv').show();
1611            $('.passIP').val('');
1612            setTimeout(function () {
1613                $('#alertDiv').hide();
1614            }, 5000);
1615            return;
1616        }
1617    });
1618    return;
1619}
1620
1621function setPassword() {
1622    $('#alertDiv').hide();
1623    $('#alertDiv').removeClass();
1624
1625    var newPassword1 = $('#newPassword1').val();
1626    var newPassword2 = $('#newPassword2').val();
1627    if (newPassword1 == '' || newPassword2 == '') {
1628        $('#alertDiv').removeClass();
1629        $('#alertDiv').addClass('alert alert-danger');
1630        $('#alertDiv').html(site170);
1631        $('#alertDiv').show();
1632        return;
1633    }
1634    if (newPassword1 !== newPassword2) {
1635        $('#alertDiv').removeClass();
1636        $('#alertDiv').addClass('alert alert-danger');
1637        $('#alertDiv').html(site169);
1638        $('#alertDiv').show();
1639        return;
1640    }
1641    if (newPassword1.length <= 7) {
1642        $('#alertDiv').removeClass();
1643        $('#alertDiv').addClass('alert alert-danger');
1644        $('#alertDiv').html(UCCheckAllowed ? site166 : site261);
1645        $('#alertDiv').show();
1646        return;
1647    }
1648    var passMatch = (/\d/.test(newPassword1) && /[a-z]/.test(newPassword1) && (UCCheckAllowed ? (/[A-Z]/.test(newPassword1)) : true));
1649    if (!passMatch) {
1650        $('#alertDiv').removeClass();
1651        $('#alertDiv').addClass('alert alert-danger');
1652        $('#alertDiv').html(UCCheckAllowed ? site166 : site261);
1653        $('#alertDiv').show();
1654        return;
1655    }
1656    $('.loading').show();
1657    var params = {};
1658    params.newPassword1 = newPassword1;
1659    params.newPassword2 = newPassword2;
1660    ajx('POST', params, 'user/setPassword', '', function (res) {
1661        $('.loading').hide();
1662        if (typeof res.status !== 'undefined' && typeof res.msg !== 'undefined') {
1663            $('#alertDiv').removeClass();
1664            $('#alertDiv').addClass('alert alert-' + res.status);
1665            $('#alertDiv').html(res.msg);
1666            $('#alertDiv').show();
1667            $('#newPassword1,#newPassword2').val('');
1668            if (typeof res.url !== 'undefined') {
1669                setTimeout(function () {
1670                    location = res.url;
1671                }, 1000);
1672            }
1673            return;
1674        }
1675    });
1676    return;
1677}
1678
1679
1680String.prototype.replaceArray = function (findArr, replaceArr) {
1681
1682    var replaceString = this;
1683    var regex;
1684    for (var i = 0; i < findArr.length; i++) {
1685        regex = new RegExp(findArr[i], "g");
1686        replaceString = replaceString.replace(regex, replaceArr[i]);
1687    }
1688    return replaceString;
1689};
1690
1691function getmobCode() {
1692
1693    var params = {};
1694    params.cCode = $('#countryCode').val();
1695    var url = ajax_url + 'site/mobileCodesJson'
1696    xhrRequest(url, 'post', params, function (res) {
1697
1698        if (res.status == true) {
1699            var html = '';
1700            $('#mobileCode').find('option').remove();
1701            html += '<option value="">Code</option>';
1702            for (var i = 0; i < res.data.length; i++) {
1703                html += '<option value="' + res.data[i] + '">' + res.data[i] + '</option>';
1704            }
1705            $('#mobileCode').html(html);
1706            $('#mobCdDiv').show();
1707            $('#mobile').attr("maxlength", 7);
1708            $(".merror").html("");
1709        } else
1710        {
1711            $('#mobCdDiv ').hide();
1712            $('#mobileCode').find('option').remove();
1713            $('#mobile').attr("maxlength", 10);
1714            $(".merror").html("");
1715        }
1716    });
1717}
1718
1719function AppLoader(hide) {
1720
1721    if (hide == "undefined") {
1722        hide = false;
1723    }
1724    if (hide == true) {
1725        $(".AppLoader").hide();
1726    } else {
1727        $(".AppLoader").show();
1728    }
1729    return true;
1730}
1731
1732function setProfDataForAuthHome(val) {
1733    console.log('value: ', val);
1734    if (val != '') {
1735        localStorage.setItem('profileLink', val);
1736    }
1737    var topProfUrl = seeker_url + 'top-professionals';
1738    authenticate(topProfUrl);
1739}
1740
1741function showTooltip() {
1742    setTimeout(function () {
1743        $('[data-toggle="tooltip"]').tooltip({html: true});
1744
1745    }, 500);
1746}
1747
1748function objLength(obj) {
1749    if (typeof obj !== 'object') {
1750        return 0;
1751    }
1752    var arr = Object.keys(obj);
1753    return arr.length;
1754}
1755
1756$(document).delegate('.rzCollapse', 'click', function () {
1757    var divId = $('#' + $(this).data('href') + '.collapse');
1758    if ($(this).attr('aria-expanded') == 'true') {
1759        $(divId).collapse('hide');
1760        $(this).addClass('collapsed');
1761        $(this).attr('aria-expanded', false);
1762    } else {
1763        $(divId).collapse('show');
1764        $(this).removeClass('collapsed');
1765        $(this).attr('aria-expanded', true);
1766    }
1767})
1768function sendNotificationToPA(userId, cvId, emailSubject, viewSource) {
1769
1770    var params = {};
1771    params.user_id = userId;
1772    params.cv_id = cvId;
1773    params.emailSubject = emailSubject;
1774    params.viewSource = typeof viewSource === 'undefined' ? '' : viewSource;
1775    var url = ajax_url + 'cv/sendNotificationToPA';
1776    xhrRequest(url, 'post', params, function (resp) {
1777        if (resp.status == true) {
1778            console.log("notification sent");
1779        } else {
1780            console.log("something going wrong");
1781        }
1782    });
1783}
1784/***     Report issue regarding image or profile ***/
1785$(document).ready(function () {
1786    $('#reportProfileForm [name="comments"]').on('change', function () {
1787        if ($(this).val() === "Other") {
1788            $('#reportProfileForm #other_comments').collapse('show')
1789        } else {
1790            $('#reportProfileForm #other_comments').collapse('hide')
1791        }
1792    });
1793
1794    $('#reportImageForm [name="comments"]').on('change', function () {
1795        if ($(this).val() === "Other") {
1796            $('#reportImageForm #other_comments').collapse('show')
1797        } else {
1798            $('#reportImageForm #other_comments').collapse('hide')
1799        }
1800    });
1801
1802    $('.reportForm [name="comments"]').on('change', function () {
1803        if ($(this).val() === 'Other') {
1804            $('.reportForm #other_comments').collapse('show');
1805        } else {
1806            $('.reportForm #other_comments').collapse('hide');
1807        }
1808    });
1809});
1810
1811function openProfileReportModal(image_id, seeker_user_id, source) {
1812
1813    $('#reportProfileForm .msgDiv').addClass('hide');
1814    $('#reportProfileForm #image_id').val(image_id);
1815    $('#reportProfileForm #seeker_user_id').val(seeker_user_id);
1816    $('#reportProfileForm #source').val(source);
1817    $('#report_profile').modal('show');
1818}
1819function openImageReportModal(image_id, seeker_user_id, source) {
1820    $('#reportImageForm .msgDiv').addClass('hide');
1821    $('#reportImageForm #image_id').val(image_id);
1822    $('#reportImageForm #seeker_user_id').val(seeker_user_id);
1823    $('#reportImageForm #source').val(source);
1824    $('#report_image').modal('show');
1825}
1826function issueReport(form) {
1827    var msgContainerTarget = "reportMsgContainer";
1828
1829    if (form == 'reportImageForm')
1830    msgContainerTarget = "reportMsgContainerImage";
1831    $("#" + form + " .msgDiv").removeClass("hide").html('');
1832    $("#jreport_loader").removeClass('d-none');
1833    var size = $('#' + form + ' [name=comments]:checked').length;
1834    if (size === 0) {
1835//        $('#' + form + ' .msgDiv').removeClass('hide');
1836//        $('#' + form + ' .msg').html('Please choose atleast one option');
1837//        setTimeout(function () {
1838//            $('#' + form + ' .msgDiv').addClass('hide');
1839//        }, 5000);
1840        commonAlert('danger', 'Please choose atleast one option', 'hide', msgContainerTarget);
1841        $("#jreport_loader").addClass('d-none');
1842        return false;
1843    }
1844    var cmnts = $('#' + form + ' #otherReason').val();
1845    if ((cmnts.trim() == "Type Reason" || cmnts.trim() == "") && $('input[name=comments]:checked').val() == "Other") {
1846        commonAlert('danger', 'Please type your comments', 'hide', msgContainerTarget);
1847        $("#jreport_loader").addClass('d-none');
1848        return false;
1849    }
1850    $('#' + form + ' .reportBtn').attr('disabled', true);
1851    var BtnTxt = $('#' + form).find('button.btn-primary').text();
1852    $('#' + form).find('button.btn-primary').html(spinner);
1853    var params = {};
1854    params = $('#' + form).serialize();
1855    var url = ajax_url + 'site/issueReport';
1856    xhrRequest(url, 'post', params, function (resp) {
1857        $('#' + form).find('button.btn-primary').text(BtnTxt);
1858        if (resp.status === true) {
1859            $("#jreport_loader").addClass('d-none');
1860            commonAlert('success', resp.message, 'hide', msgContainerTarget);
1861            /*$('#' + form + ' .msgDiv').removeClass('hide');
1862             $('#' + form + ' .reportBtn').attr('disabled', false);
1863             $('#' + form + ' .msg').html(resp.message);*/
1864            setTimeout(function () {
1865                $('#reportJob').modal('toggle');
1866            }, 3000);
1867        } else {
1868            $("#jreport_loader").addClass('d-none');
1869            if (typeof resp.code !== 'undefined' && resp.code === 401) {
1870                authenticate();
1871            }
1872
1873            commonAlert('danger', resp.message, 'hide', msgContainerTarget);
1874            /*console.log('ERR: ', resp.message);
1875             $('#' + form + ' .msgDiv').removeClass('hide');
1876             $('#' + form + ' .msg').html(resp.message);*/
1877        }
1878        setTimeout(function () {
1879            $('#' + form + ' #other_comments').removeClass('in');
1880            $('#' + form + ' #otherReason').val('');
1881            $('#' + form + ' input:radio').attr('checked', false);
1882            var clsBtn = $('.modal.in').find('button.close');
1883            $(clsBtn).trigger('click');
1884            $('#' + form + ' .reportBtn').attr('disabled', false);
1885        }, 2000);
1886        /*setTimeout(function () {
1887         $('#' + form + ' .msgDiv').addClass('hide');
1888         }, 8000);*/
1889    });
1890}
1891
1892
1893$(document).ready(function () {
1894    /* custom-select starts */
1895    if ($(".selectPicker").length) {
1896        $(".selectPicker").load(function () {
1897            if (this.value != '') {
1898                $(this).parent().addClass("active");
1899            } else {
1900                $(this).parent().removeClass("active");
1901                console.log('not selected');
1902            }
1903        }).load();
1904        $(".selectPicker").change(function () {
1905            if (this.value != '') {
1906                $(this).parent().addClass("active");
1907            } else {
1908                $(this).parent().removeClass("active");
1909                console.log('not selected');
1910            }
1911        }).change();
1912    }
1913
1914    var flag_hec = false;
1915
1916    $('#HECLogin-form').validate({
1917        ignore: '',
1918        rules: {
1919            hec_email: {
1920                required: true,
1921                email: true
1922            },
1923            hec_mobile: {
1924                required: true,
1925                minlength: function () {
1926                    return 13;
1927                },
1928                maxlength: function () {
1929                    return 13;
1930                }
1931            }
1932        },
1933        messages: {
1934        },
1935        highlight: function (element) {
1936            $(element).parent().addClass('has-error');
1937        },
1938        unhighlight: function (element) {
1939            $(element).parent().removeClass('has-error');
1940        },
1941        errorElement: 'span',
1942        errorClass: 'help-block',
1943        errorPlacement: function (error, element) {
1944            if (element.parent('.input-group').length) {
1945                error.insertAfter(element.parent());
1946            } else if (element.parent('.twince').length) {
1947                error.insertAfter(element.parent('.twince').find(".errorc"));
1948            } else {
1949                error.insertAfter(element);
1950            }
1951        }
1952    });
1953
1954    $('body').on('submit', "#HECLogin-form", function (event) {
1955        event.preventDefault();
1956        if (flag_hec) {
1957            return false;
1958        }
1959        flag_hec = true;
1960        var that = $(this);
1961        var data = that.serialize();
1962        var message = that.find('#messageContainer');
1963        var alert = message.find('.alert');
1964
1965        $.ajax({
1966            url: ajax_url + 'dashboard/hec',
1967            type: 'POST',
1968            dataType: 'json',
1969            data: data,
1970        })
1971                .done(function (res) {
1972                    if (res.code == 2) {
1973                        alert.removeClass('alert-danger');
1974                        alert.addClass('alert-success');
1975                        alert.html(res.msg);
1976                        message.removeClass('hidden');
1977                        that[0].reset();
1978                    } else if (res.code == 1) {
1979                        window.location = res.msg;
1980                    } else {
1981                        alert.removeClass('alert-success');
1982                        alert.addClass('alert-danger');
1983                        alert.html(res.msg);
1984                        message.removeClass('hidden');
1985                        setTimeout(function () {
1986                            message.addClass('hidden');
1987                        }, 2000);
1988                    }
1989                })
1990                .always(function () {
1991                    flag_hec = false;
1992                });
1993
1994    });
1995    /* custom-select ends */
1996});
1997
1998function verifyCodeCaptcha(token) {
1999    $('#verify_code_captcha .loading').show();
2000    $('#messageContainer').html('');
2001    var params = {};
2002    params = $('#verify_code_captcha').serialize();
2003    params += '&userJetonRecaptcha=' + token;
2004
2005    $.ajax({
2006        url: ajax_url + 'user/verifyregistercode',
2007        type: 'POST',
2008        data: params,
2009        dataType: 'json',
2010        headers: {
2011            //'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
2012        },
2013        success: function (resp) {
2014            $('#verify_code_captcha .loading').hide();
2015            console.log(resp);
2016            if (resp.status == true && resp.code == 11) {
2017                window.location.href = resp.url;
2018                //commonAlert('success', resp.message);
2019                return false;
2020            } else {
2021                commonAlert('danger', resp.message);
2022                return false;
2023            }
2024        },
2025        error: function (resp) {
2026            log(resp);
2027        }
2028
2029    });
2030}
2031
2032function isValidEmail(email) {
2033    var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
2034    return regex.test(email);
2035
2036}
2037function userAuthenticate() {
2038                                                var email;
2039                                                var data = {};
2040                                               email= document.getElementById('email').value;
2041                                               data.email=email;
2042//                                              
2043                                                $.ajax({
2044                                                url: ajax_url + 'user/userData',
2045                                                type: 'POST',
2046                                                dataType: 'json',
2047                                                data: data,
2048                                                 })
2049                                                .done(function (res) {
2050                                                    if (res.code === 200) {
2051                                                        $('.emailalert').show();
2052                                                        $('.emailalertmsg').html(res.message);
2053                                                    }
2054                                                    else{
2055                                                        $('.emailalert').hide();
2056                                                    }
2057                                                })
2058
2059                                                 }

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.