1(function ($) { 2 "use strict"; 3 $.fn.jobsearch_req_field_loop = function (callback, thisArg) { 4 var me = this; 5 return this.each(function (index, element) { 6 return callback.call(thisArg || element, element, index, me); 7 }); 8 }; 9})(jQuery); 10 11jQuery('#job-sector').find('option').first().val(''); 12jQuery('#job-type').find('option').first().val(''); 13 14jQuery(document).ready(function () { 15 16 var setReqFiled = setInterval(function () { 17 var jobTypeFiled = jQuery('#job-type'); 18 if (jobTypeFiled.length > 0 && jobTypeFiled.hasClass('jobsearch-req-field')) { 19 jobTypeFiled.parent('.jobsearch-profile-select').find('.selectize-control').removeClass('jobsearch-req-field'); 20 jobTypeFiled.parent('.jobsearch-profile-select').find('.selectize-dropdown').removeClass('jobsearch-req-field'); 21 jQuery('#job-type-selectized').removeClass('jobsearch-req-field'); 22 } 23 clearInterval(setReqFiled); 24 }, 1000); 25}); 26 27function jobsearch_validate_form(that) { 28 "use strict"; 29 30 var $ = jQuery; 31 var req_class = 'jobsearch-req-field', 32 _this_form = $(that), 33 form_validity = 'valid'; 34 var errors_counter = 1; 35 36 _this_form.find('input.' + req_class + ',select.' + req_class + ',textarea.' + req_class).jobsearch_req_field_loop(function (element, index, set) { 37 38 var job_desc_max_len = parseInt(jobsearch_posting_vars.desc_len_exceed_num); 39 var eror_str = ''; 40 //console.log($(element).attr('name')); 41 //console.log($(element).val()); 42 if ($(element).val() == '' || $(element).val() == null) { 43 form_validity = 'invalid'; 44 eror_str = jobsearch_posting_vars.blank_field_msg; 45 46 } else if ($(element).attr('id') == 'job_detail') { 47 var field_val = $(element).val(); 48 if (field_val.length > job_desc_max_len) { 49 form_validity = 'invalid'; 50 eror_str = jobsearch_posting_vars.desc_len_exceed_msg; 51 52 } else { 53 $(element).parents('.wp-editor-container').css({"border": "1px solid #eceeef"}); 54 $(element).parents('.form-field-sec').find('.field-error').html(''); 55 } 56 } else if ($(element).attr('name') == 'reg_user_uname') { 57 var field_val = $(element).val(); 58 if (!field_val.match(/^([a-zA-Z0-9_-]+)$/)) { 59 form_validity = 'invalid'; 60 eror_str = 'Username can contain only alphanumeric characters, underscore(_), dash(-).'; 61 } else if (field_val.length > 20 || field_val.length < 3) { 62 form_validity = 'invalid'; 63 eror_str = 'Username length should be between 3 to 20 characters.'; 64 } else { 65 $(element).css({"border": "1px solid #eceeef"}); 66 $(element).parents('.form-field-sec').find('.field-error').html(''); 67 } 68 } else if ($(element).attr('name') == 'reg_user_email') { 69 var field_val = $(element).val(); 70 var email_pattern = new RegExp(/^[+a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,20}$/i); 71 if (field_val == '' || !email_pattern.test(field_val)) { 72 form_validity = 'invalid'; 73 eror_str = 'Please enter proper email address.'; 74 } else { 75 $(element).css({"border": "1px solid #eceeef"}); 76 $(element).parents('.form-field-sec').find('.field-error').html(''); 77 } 78 } else { 79 $(element).css({"border": "1px solid #eceeef"}); 80 if ($(element).parents('.jobsearch-profile-select').length > 0) { 81 $(element).parents('.jobsearch-profile-select').removeAttr('style'); 82 } 83 } 84 85 if (eror_str != '') { 86 //var animate_to = element; 87 if ($(element).parents('.jobsearch-profile-select').length > 0) { 88 element = $(element).parents('.jobsearch-profile-select'); 89 } 90 if ($(element).attr('id') == 'job_detail') { 91 element = $(element).parents('.wp-editor-container'); 92 } 93 if ($(element).hasClass('jobsearch-reqtext-editor')) { 94 element = $(element).parents('.wp-editor-container'); 95 } 96 if ($(element).attr('id') == 'job-type' || $(element).attr('id') == 'job-sector') { 97 element = $(element).parents('.jobsearch-profile-select'); 98 } 99 if ($(element).hasClass('multiselect-req')) { 100 element = $(element).parents('.jobsearch-profile-select'); 101 }
102 $(element).css({"border": "1px solid #ff0000"}); 103 var animate_to = $(element); 104 105 $(element).parents('li').find('.field-error').html(eror_str); 106 107 if (errors_counter == 1) { 108 $('html, body').animate({scrollTop: animate_to.offset().top - 70}, 1000); 109 } 110 111 errors_counter++; 112 } else { 113 if ($(element).attr('id') == 'job-type' || $(element).attr('id') == 'job-sector') { 114 element = $(element).parents('.jobsearch-profile-select'); 115 $(element).removeAttr('style'); 116 } 117 if ($(element).hasClass('multiselect-req')) { 118 element = $(element).parents('.jobsearch-profile-select'); 119 $(element).removeAttr('style'); 120 } 121 } 122 }); 123 124 if (form_validity == 'valid') { 125 // API Locations 126 var locations_type = jobsearch_posting_vars.locations_type; 127 var is_req_apilocs = jobsearch_posting_vars.required_api_locs; 128 var switch_location_fields = jobsearch_posting_vars.switch_location_fields; 129 130 if (((locations_type == 'api' && is_req_apilocs == 'yes') || locations_type == 'manual') && switch_location_fields == 'on') { 131 var api_loc_contry = _this_form.find('select[name="jobsearch_field_location_location1"]'); 132 if (api_loc_contry.length > 0) { 133 var api_locval = api_loc_contry.val(); 134 if (api_locval == '') { 135 api_loc_contry.parent('.jobsearch-profile-select').css({"border": "1px solid #ff0000"}); 136 var animate_to = api_loc_contry.parent('.jobsearch-profile-select'); 137 jQuery('html, body').animate({scrollTop: animate_to.offset().top - 110}, 1000); 138 return false; 139 } else { 140 api_loc_contry.parent('.jobsearch-profile-select').css({"border": "none"}); 141 } 142 } 143 var api_loc_state = _this_form.find('select[name="jobsearch_field_location_location2"]'); 144 if (api_loc_state.length > 0) { 145 var api_locval = api_loc_state.val(); 146 if (api_locval == '') { 147 api_loc_state.parent('.jobsearch-profile-select').css({"border": "1px solid #ff0000"}); 148 var animate_to = api_loc_state.parent('.jobsearch-profile-select'); 149 jQuery('html, body').animate({scrollTop: animate_to.offset().top - 110}, 1000); 150 return false; 151 } else { 152 api_loc_state.parent('.jobsearch-profile-select').css({"border": "none"}); 153 } 154 } 155 var api_loc_cities = _this_form.find('select[name="jobsearch_field_location_location3"]'); 156 if (api_loc_cities.length > 0) { 157 var api_locval = api_loc_cities.val(); 158 if (api_locval == '') { 159 api_loc_cities.parent('.jobsearch-profile-select').css({"border": "1px solid #ff0000"}); 160 var animate_to = api_loc_cities.parent('.jobsearch-profile-select'); 161 jQuery('html, body').animate({scrollTop: animate_to.offset().top - 110}, 1000); 162 return false; 163 } else { 164 api_loc_cities.parent('.jobsearch-profile-select').css({"border": "none"}); 165 } 166 } 167 } 168 // 169 170 var salary_validtion = true; 171 var job_slary_type = jQuery('select[name="job_salary_type"]'); 172 if (job_slary_type.length > 0 && job_slary_type.val() == 'negotiable') { 173 salary_validtion = false; 174 } 175 var salry_main_cont = jQuery('.salary-input-fordev'); 176 if (!salry_main_cont.hasClass('required-field')) { 177 salary_validtion = false; 178 } 179 180 var min_salary_field = jQuery('.min-salary > input[name="job_salary"]'); 181 var max_salary_field = jQuery('.max-salary > input[name="job_max_salary"]'); 182 if (salary_validtion === true && min_salary_field.length > 0 && max_salary_field.length > 0) { 183 var min_salary_fieldval = Number(min_salary_field.val()); 184 var max_salary_fieldval = Number(max_salary_field.val()); 185 //console.log(min_salary_fieldval); 186 if (min_salary_fieldval <= 0) {
187 min_salary_field.css({"border": "1px solid #ff0000"}); 188 var animate_to = min_salary_field; 189 jQuery('html, body').animate({scrollTop: animate_to.offset().top - 70}, 1000); 190 return false; 191 } else if (min_salary_fieldval > 0 && max_salary_fieldval < min_salary_fieldval) { 192 max_salary_field.css({"border": "1px solid #ff0000"}); 193 var animate_to = max_salary_field; 194 jQuery('html, body').animate({scrollTop: animate_to.offset().top - 70}, 1000); 195 return false; 196 } else { 197 max_salary_field.css({"border": "1px solid #eceeef"}); 198 } 199 } 200 201 if (_this_form.find('.cusfield-checkbox-required').find('input[type=checkbox]').length > 0) { 202 var element_to_go = _this_form.find('.cusfield-checkbox-required'); 203 var req_checkboxs = _this_form.find('.cusfield-checkbox-required').find('input[type=checkbox]'); 204 var req_checkbox_err = 1; 205 req_checkboxs.each(function() { 206 if (jQuery(this).is(':checked')) { 207 req_checkbox_err = 0; 208 } 209 }); 210 if (req_checkbox_err == 1) { 211 jQuery(element_to_go).css({"border": "1px solid #ff0000"}); 212 jQuery('html, body').animate({scrollTop: element_to_go.offset().top - 100}, 1000); 213 return false; 214 } else { 215 jQuery(element_to_go).removeAttr('style'); 216 } 217 } 218 219 jQuery('.jobsearch-postjob-btn').addClass('disabled-btn').attr('disabled', 'disabled'); 220 return true; 221 } else { 222 return false; 223 } 224} 225 226jQuery(document).on('change', 'select[name=job_salary_type]', function () { 227 var _this = jQuery(this); 228 var slary_input_con = _this.parents('li').find('.salary-input'); 229 var slary_curncy_con = jQuery('.jobsalary-curency-con'); 230 231 if (_this.val() == 'negotiable') { 232 slary_input_con.hide(); 233 slary_curncy_con.hide(); 234 } else { 235 slary_input_con.removeAttr('style'); 236 slary_curncy_con.removeAttr('style'); 237 } 238}); 239 240jQuery(document).on('submit', 'form#job-posting-form', function (ev) { 241 // For custom upload field 242 243 var this_form = jQuery(this); 244 var $uplod_file_ret = jobsearch_cusfield_validate_attach_field(jQuery(this)); 245 if ($uplod_file_ret == false) { 246 return false; 247 } 248 // 249 var fields_1 = jobsearch_validate_form(jQuery(this)); 250 if (!fields_1) { 251 return false; 252 } 253 var fields_2 = jobsearch_validate_seliz_req_form(jQuery(this)); 254 if (!fields_2) { 255 return false; 256 } 257 258 if (this_form.hasClass('jobsearch-uverify-emp')) { 259 ev.preventDefault(); 260 261 var msglodrcon = this_form.find('.jobsearch-postjob-msglodrcon'); 262 msglodrcon.html('<i class="fa fa-refresh fa-spin"></i>'); 263 jQuery.ajax({ 264 url: jobsearch_login_register_common_vars.ajax_url, 265 method: "POST", 266 data: { 267 user_email: this_form.find('input[name="reg_user_email"]').val(), 268 user_name: this_form.find('input[name="reg_user_uname"]').val(), 269 comp_name: this_form.find('input[name="pt_user_organization"]').val(), 270 _nonce: jobsearch_comon_script_vars.nonce, 271 action: 'jobsearch_employer_reg_verif_on_jobpost' 272 }, 273 dataType: "json", 274 success: function(response) { 275 276 if (typeof response.toform !== 'undefined') { 277 this_form.removeClass('jobsearch-uverify-emp'); 278 this_form.trigger('submit'); 279 return; 280 } 281 if (typeof response.verify_popup !== 'undefined') { 282 jQuery('#jobsearch-modal-verify-empregacc').find('input[name="user_email"]').val(this_form.find('input[name="reg_user_email"]').val()).attr('value', this_form.find('input[name="reg_user_email"]').val()); 283 jobsearch_modal_popup_open('jobsearch-modal-verify-empregacc'); 284 if (response.error == '0') { 285 this_form.find('input.jobsearch-postjob-btn').removeAttr('disabled').removeClass('disabled-btn'); 286 msglodrcon.html(''); 287 return; 288 } 289 } 290 291 var msg_before = ''; 292 var msg_after = ''; 293 if (response.error == '1') { 294 msg_before = '<div class="alert alert-danger"><i class="fa fa-times"></i> '; 295 msg_after = '</div>'; 296 } else if (response.error == '2') { 297 msg_before = '<div class="alert alert-warning"><i class="fa fa-check"></i> '; 298 msg_after = '</div>'; 299 } else if (response.error == '0') { 300 msg_before = '<div class="alert alert-success"><i class="fa fa-check"></i> '; 301 msg_after = '</div>'; 302 } 303 304 this_form.find('input.jobsearch-postjob-btn').removeAttr('disabled').removeClass('disabled-btn'); 305 msglodrcon.html(msg_before + response.msg + msg_after); 306 }, 307 error: function() { 308 msglodrcon.html(''); 309 } 310 }); 311 } 312}); 313 314jQuery('#jobsearch-modal-verify-empregacc').on('submit', 'form.emp-activeacc-submit-form', function (ev) { 315 ev.preventDefault(); 316 317 var this_form = jQuery(this); 318 var job_form = jQuery('form#job-posting-form'); 319 320 var msg_con = this_form.find('.message-opbox'); 321 msg_con.html('').hide(); 322 var lodr_con = this_form.find('.loader-box'); 323 lodr_con.html('<i class="fa fa-refresh fa-spin"></i>'); 324 325 var reg_ser_form = this_form[0]; 326 var formData = new FormData(reg_ser_form); 327 jQuery.ajax({ 328 url: jobsearch_login_register_common_vars.ajax_url, 329 method: "POST", 330 data: formData, 331 processData: false, 332 contentType: false, 333 dataType: "json", 334 success: function(response) { 335 336 if (typeof response.verified !== 'undefined') { 337 job_form.removeClass('jobsearch-uverify-emp'); 338 job_form.trigger('submit'); 339 return; 340 } 341 342 var msg_before = ''; 343 var msg_after = ''; 344 if (response.error == '1') { 345 msg_before = '<div class="alert alert-danger"><i class="fa fa-times"></i> '; 346 msg_after = '</div>'; 347 } else if (response.error == '2') { 348 msg_before = '<div class="alert alert-warning"><i class="fa fa-check"></i> '; 349 msg_after = '</div>'; 350 } else if (response.error == '0') { 351 msg_before = '<div class="alert alert-success"><i class="fa fa-check"></i> '; 352 msg_after = '</div>'; 353 } 354 355 lodr_con.html(''); 356 msg_con.css({display: 'inline-block'});
357 msg_con.html(msg_before + response.msg + msg_after); 358 }, 359 error: function() { 360 lodr_con.html(''); 361 } 362 }); 363}); 364 365jQuery(document).on('change', 'select[name="job_salary_currency"]', function () { 366 var _this = jQuery(this); 367 var sel_curr = _this.find(':selected').attr('data-cur'); 368 jQuery('.salary-input').find('span').html(sel_curr); 369}); 370 371function jobsearch_job_attach_files_url(event) { 372 373 if (window.File && window.FileList && window.FileReader) { 374 375 var file_types_str = jobsearch_posting_vars.job_files_mime_types; 376 if (file_types_str != '') { 377 var file_types_array = file_types_str.split('|'); 378 } else { 379 var file_types_array = []; 380 } 381 var file_allow_size = jobsearch_posting_vars.job_files_max_size; 382 var num_files_allow = jobsearch_posting_vars.job_num_files_allow; 383 384 num_files_allow = parseInt(num_files_allow); 385 file_allow_size = parseInt(file_allow_size); 386 387 jQuery('#attach-files-holder').find('.adding-file').remove(); 388 var files = event.target.files; 389 for (var i = 0; i < files.length; i++) { 390 391 var _file = files[i]; 392 var file_type = _file.type; 393 var file_size = _file.size; 394 var file_name = _file.name; 395 396 file_size = parseFloat(file_size / 1024).toFixed(2); 397 398 if (file_size <= file_allow_size) { 399 if (file_types_array.indexOf(file_type) >= 0) { 400 var file_icon = 'fa fa-file-text-o'; 401 if (file_type == 'image/png' || file_type == 'image/jpeg') { 402 file_icon = 'fa fa-file-image-o'; 403 } else if (file_type == 'application/msword' || file_type == 'application/vnd.openxmlformats-officedocument.wordprocessingml.document') { 404 file_icon = 'fa fa-file-word-o'; 405 } else if (file_type == 'application/vnd.ms-excel' || file_type == 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') { 406 file_icon = 'fa fa-file-excel-o'; 407 } else if (file_type == 'application/pdf') { 408 file_icon = 'fa fa-file-pdf-o'; 409 } 410 411 var rand_number = Math.floor((Math.random() * 99999999) + 1); 412 var ihtml = '\ 413 <div class="jobsearch-column-3 adding-file">\ 414 <div class="file-container">\ 415 <a><i class="' + file_icon + '"></i> ' + file_name + '</a>\ 416 </div>\ 417 </div>'; 418 jQuery('#attach-files-holder').append(ihtml); 419 420 } else { 421 alert(jobsearch_posting_vars.file_type_error); 422 return false; 423 } 424 } else { 425 alert(jobsearch_posting_vars.file_size_error); 426 return false; 427 } 428 429 if (i >= num_files_allow) { 430 break; 431 } 432 } 433 } 434} 435 436jQuery(document).on('click', '.jobsearch-company-gallery .el-remove', function () { 437 var e_target = jQuery(this).parent('li'); 438 e_target.fadeOut('slow', function () { 439 e_target.remove(); 440 }); 441}); 442 443jQuery(document).on('change', '#jobsearch_job_apply_type', function () { 444 if (jQuery(this).val() == 'external') { 445 jQuery('#job-apply-external-url').slideDown(); 446 jQuery('#job-apply-by-email').hide(); 447 } else if (jQuery(this).val() == 'with_email') { 448 jQuery('#job-apply-by-email').slideDown(); 449 jQuery('#job-apply-external-url').hide(); 450 } else { 451 jQuery('#job-apply-external-url').hide(); 452 jQuery('#job-apply-by-email').hide(); 453 } 454}); 455 456jQuery(document).on('click', 'input[name="job_package_featured"]', function () { 457 var _this = jQuery(this); 458 if (_this.is(":checked")) { 459 jQuery('input[name="job_package_featured"]').prop('checked', false); 460 _this.prop('checked', true); 461 462 //
463 jQuery('.jobsearch-pkgs-boughtnew').slideUp(); 464 } 465}); 466 467jQuery(document).on('click', 'input[name="job_subs_package"]', function () { 468 var _this = jQuery(this); 469 if (_this.is(":checked")) { 470 jQuery('input[name="job_subs_package"]').prop('checked', false); 471 _this.prop('checked', true); 472 } 473 if (_this.is(":checked") && _this.attr('data-pkg_type') != 'job') { 474 jQuery('.feat-with-already-purp').slideDown(); 475 } else { 476 jQuery('.feat-with-already-purp').slideUp(); 477 } 478}); 479 480jQuery(document).on('click', 'input[name="job_package_new"]', function () { 481 var _this = jQuery(this); 482 if (_this.is(":checked")) { 483 jQuery('input[name="job_package_new"]').prop('checked', false); 484 _this.prop('checked', true); 485 } 486 if (_this.is(":checked") && _this.attr('data-pkg_type') != 'job') { 487 jQuery('.feat-with-fresh-npkg').slideDown(); 488 } else { 489 jQuery('.feat-with-fresh-npkg').slideUp(); 490 } 491}); 492 493jQuery(document).on('click', '.jobsearch-repblishin-jobtn', function (e) { 494 e.preventDefault(); 495 var _this = jQuery(this); 496 _this.next('input[name=republishin_job]').val('1'); 497 _this.parents('form').submit(); 498 return false; 499}); 500 501function isNumberKey(txt, evt) { 502 var charCode = (evt.which) ? evt.which : evt.keyCode; 503 if (charCode == 46) { 504 //Check if the text already contains the . character 505 if (txt.value.indexOf('.') === -1) { 506 return true; 507 } else { 508 return false; 509 } 510 } else { 511 if (charCode > 31 && 512 (charCode < 48 || charCode > 57)) 513 return false; 514 } 515 return true; 516}
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.