{"id":547,"date":"2026-01-10T19:59:56","date_gmt":"2026-01-11T00:59:56","guid":{"rendered":"https:\/\/chefportfolio.ca\/add-resume-2\/"},"modified":"2026-01-10T19:59:56","modified_gmt":"2026-01-11T00:59:56","slug":"add-resume-2","status":"publish","type":"page","link":"https:\/\/chefportfolio.ca\/fr\/add-resume-2\/","title":{"rendered":"Ajouter un CV"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\"><script type=\"text\/javascript\" src=\"https:\/\/maps.googleapis.com\/maps\/api\/js?key=AIzaSyD3GNYDJQtcDotAF3FgSm2oNr9X7sZyy3E\"><\/script>\n<style type=\"text\/css\">\n.ui-datepicker{\n    float: left;\n}\n<\/style>\n\n<script type=\"text\/javascript\">\n\n    var maindivoffsettop = 0;\n    var currenttop = 0;\n    jQuery(document).ready(function () {\n        jQuery(\"input.jstokeninputcity\").each(function(){\n            var jsparent = jQuery(this).parent();\n            var cityid = jQuery(jsparent).find('input.jscityid').val();\n            var cityname = jQuery(jsparent).find('input.jscityname').val();\n            var datafor = jQuery(this).attr('data-for');\n            datafor = datafor.split('_');\n            getTokenInputResume(datafor, cityid, cityname);\n            try { tinymce.execCommand('mceAddEditor', true, 'resume'); } catch (e){console.log(e); }\n        });\n        \/\/More option\n        jQuery(\"body\").on('click', 'span.wpjobportal-resume-moreoptiontitle', function(e){\n            e.preventDefault();\n            var img = jQuery(this).find('img');\n            if (jQuery('div.wpjobportal-resume-moreoption').is(':hidden')) {\n                var srcimg = 'https:\/\/chefportfolio.ca\/wp-content\/plugins\/wp-job-portal\/includes\/images\/resume\/up.png';\n            } else{\n                var srcimg = 'https:\/\/chefportfolio.ca\/wp-content\/plugins\/wp-job-portal\/includes\/images\/resume\/down.png';\n            }\n            jQuery('div.wpjobportal-resume-moreoption').toggle();\n            jQuery(img).attr('src', srcimg);\n        });\n    });\n    function getTokenInputResume(datafor, cityid, cityname) {\n        var citylink = \"https:\/\/chefportfolio.ca\/fr\/add-resume-2\/?wpjobportalme=city&task=getaddressdatabycityname&action=wpjobportaltask&wpjobportalpageid=547\";\n        var inputfor = datafor[0];\n        var sectionid = datafor[1];\n        var city = jQuery(\"#\" + inputfor + \"cityforedit_\"+sectionid).val();\n        if (city != \"\") {\n            jQuery(\"#\" + inputfor + \"_city_\"+sectionid).tokenInput(citylink, {\n                theme: \"wpjobportal\",\n                preventDuplicates: true,\n                hintText: \"Type In A Search Term\",\n                noResultsText: \"No Results\",\n                searchingText: \"Searching\",\n                tokenLimit: 1,\n                prePopulate: [{id: cityid, name: cityname}],\n                                    });\n        }else{\n            jQuery(\"#\" + inputfor + \"_city_\"+sectionid).tokenInput(citylink, {\n                theme: \"wpjobportal\",\n                preventDuplicates: true,\n                hintText: \"Type In A Search Term\",\n                noResultsText: \"No Results\",\n                searchingText: \"Searching\",\n                tokenLimit: 1,\n                                });\n\n        }\n\n    }\n\n    jQuery(\"body\").on(\"click\", \"img#wjportal-form-delete-image\", function(e){\n        jQuery('.wjportal-form-image-wrp').hide();\n        jQuery('input#photo').val('').clone(true);\n        jQuery('span.wjportal-form-upload-btn-wrp-txt').hide();\n        jQuery('span.wjportal-form-upload-btn-wrp-txt').text('');\n        var id =  jQuery(\"input[name=id]\").val();\n        \/\/ var id =  jQuery('#id').val();\n        removeLogo(id);\n    });\n\n    function removeLogo(id) {\n        var ajaxurl = \"https:\/\/chefportfolio.ca\/wp-admin\/admin-ajax.php\";\n        jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'deleteResumeLogo', resumeid: id, '_wpnonce':'c17d256163'}, function (data) {\n            if (data) {\n                jQuery(\"#resume_logo_deleted\").val('1');\n            } else {\n                jQuery(\"div.logo-container\").append(\"<span style='color:Red;'>Error Deleting Logo\");\n            }\n        });\n    }\n\n    function disablefields(sectionid){\n      if(jQuery('#employer_current_status'+sectionid).is(\":checked\")){\n            var crudDate=\"05\/04\/2026\";\n            jQuery(\"#resto_date\"+sectionid).hide();\n            jQuery(\"#employer_current_status\"+sectionid).val(1);\n            jQuery('#employer_to_date4'+sectionid).val(crudDate);\n        }else if(jQuery('#employer_current_status'+sectionid).is(\":not(:checked)\")){\n            jQuery(\"#resto_date\"+sectionid).show();\n            jQuery(\"#employer_current_status\"+sectionid).val(0);\n            jQuery('#employer_to_date4'+sectionid).val('');\n        }else{\n\n        }\n    }\n    function showResumeSection( btn , sec_name){\n        var path = 'div#jssection_'+sec_name;\n        var obj = jQuery(path).find('.jssection_hide').first();\n        var islast = jQuery(path).find('.jssection_hide').next().hasClass('jssection_hide');\n        \/\/ now enable this section\n        jQuery(obj).removeClass('jssection_hide');\n        jQuery(obj).find('input.jsdeletethissection').val(0);\n        if(!islast){\n            jQuery(btn).remove();\n        }\n        \/\/ set required values\n        jQuery(obj).find(\"[data-myrequired]\").each(function(){\n            var classname = jQuery(this).attr('data-myrequired');\n            jQuery(this).addClass(classname);\n            jQuery(this).attr('data-validation',classname);\n        });\n    }\n\n    function deleteThisSection(obj){\n        jQuery(obj).hide();\n        \/\/ custom code\n        var main = jQuery(obj).parent();\n        jQuery(main).find(\"[data-validation]\").each(function(){\n            var classname = jQuery(this).attr('data-myrequired');\n            jQuery(this).removeClass(classname);\n            jQuery(this).attr('data-validation','');\n        });\n        main.find('input.jsdeletethissection').val(1);\n        main.find('div.jsundo').addClass('jsundodiv');\n        main.find('div.jsundo').show();\n    }\n\n    function undoThisSection(obj){\n        var main = jQuery(obj).parent();\n        jQuery(main).find(\"[data-myrequired]\").each(function(){\n            var classname = jQuery(this).attr('data-myrequired');\n            jQuery(this).addClass(classname);\n            jQuery(this).attr('data-validation',classname);\n        });\n        main.hide();\n        main.removeClass('jsundodiv');\n        main.parent().find('input.jsdeletethissection').val(0);\n        main.parent().find('img.jsdeleteimage').show();\n    }\n\n    function showdiv(sectionid) {\n        document.getElementById('outermapdiv_'+sectionid).style.display = 'inline-block';\n        document.getElementById('map_'+sectionid).style.visibility = 'visible';\n        document.getElementById('map_'+sectionid).style.display = '';\n    }\n    function hidediv(sectionid) {\n        document.getElementById('outermapdiv_'+sectionid).style.display = 'none';\n        document.getElementById('map_'+sectionid).style.visibility = 'hidden';\n        document.getElementById('map_'+sectionid).style.display = 'hidden';\n    }\n\n\n    function loadMap( sectionid ) {\n                        loadGmap(sectionid);\n            }\n\n\n\n    function loadGmap(sectionid,city_latitude = '',city_longitude = ''){\/\/ to handle the case of showing city marker on token input\n        if(city_latitude == '' && city_longitude ==''){\n            var default_latitude = \"45.424721\";\n            var default_longitude = \"-75.695000\";\n        }else{\n            var default_latitude = city_latitude;\n            var default_longitude = city_longitude;\n        }\n\n        var latitude       = document.getElementById('latitude_'+sectionid).value;\n        var longitude = document.getElementById('longitude_'+sectionid).value;\n        var marker_flag = 0;\n        if (latitude != ''){\n            if (longitude != '') {\n                default_latitude = latitude;\n                default_longitude = longitude;\n                marker_flag = 1;\n            }\n        }\n        var latlng = new google.maps.LatLng(default_latitude, default_longitude);\n        zoom = 10;\n        var myOptions = {\n            zoom: zoom,\n            center: latlng,\n            scrollwheel: false,\n            mapTypeId: google.maps.MapTypeId.ROADMAP\n        };\n        var map = new google.maps.Map(document.getElementById(\"map_container_\"+sectionid), myOptions);\n        var lastmarker = new google.maps.Marker({\n            postiion: latlng,\n        });\n        var marker = new google.maps.Marker({\n            position: latlng,\n        });\n        if(marker_flag == 1){\n            marker.setMap(map);\n        }\n\n        lastmarker = marker;\n        document.getElementById('latitude_'+sectionid).value = marker.position.lat();\n        document.getElementById('longitude_'+sectionid).value = marker.position.lng();\n        google.maps.event.addListener(map, \"click\", function (e) {\n            var latLng = new google.maps.LatLng(e.latLng.lat(), e.latLng.lng());\n            geocoder = new google.maps.Geocoder();\n            geocoder.geocode({'latLng': latLng}, function (results, status) {\n                if (status == google.maps.GeocoderStatus.OK) {\n                    if (lastmarker != ''){\n                        lastmarker.setMap(null);\n                    }\n                    var marker = new google.maps.Marker({\n                        position: results[0].geometry.location,\n                        map: map,\n                    });\n                    marker.setMap(map);\n                    lastmarker = marker;\n                    document.getElementById('latitude_'+sectionid).value = marker.position.lat();\n                    document.getElementById('longitude_'+sectionid).value = marker.position.lng();\n\n                } else {\n                    alert(\"Geocode was not successful for the following reason: \" + status);\n                }\n            });\n        });\n    }\n\n\n\n    function loadOsmMap(sectionid){\n         \/*Altering Map Jquery For The sake 22.00.19*\/\n          var lmap = {\n             map:null,\n             marker:null,\n             init: function(){\n                 this.toggleMap();\n                 jQuery(\"#showmap1\").on('change', lmap.toggleMap);\n             },\n             toggleMap: function(){\n                 if(!jQuery(\"#showmap1\").length || jQuery(\"#showmap1:checked\").val()){\n                     lmap.showMap();\n                 }else{\n                     lmap.hideMap();\n                 }\n             },\n             showMap: function(){\n                 jQuery(\"#map-latlng-wrap\").show();\n                 if(!this.map){\n                     this.loadMap();\n                 }\n             },\n             hideMap: function(){\n                 jQuery(\"#map-latlng-wrap\").hide();\n             },\n             loadMap: function(){\n                var default_latitude = parseFloat(\"45.424721\");\n                var default_longitude = parseFloat(\"-75.695000\");\n                var latitude =  document.getElementById('latitude_'+sectionid).value;\n                var longitude = document.getElementById('longitude_'+sectionid).value;\n                if (latitude != ''){ \n                    if (longitude != '') {\n                        default_latitude = parseFloat(latitude);\n                        default_longitude = parseFloat(longitude);\n                    }\n                }\n                lmap.map = new ol.Map({\n                    target: 'map_container_'+sectionid,\n                    controls: ol.control.defaults().extend([new ol.control.FullScreen()]),\n                    layers: [\n                        new ol.layer.Tile({\n                            source: new ol.source.OSM()\n                        })\n                    ],\n                    view: new ol.View({\n                        center: ol.proj.fromLonLat([default_longitude,default_latitude]),\n                        zoom: 14,\n                    }),\n                });\n                lmap.map.addEventListener('click',function(event){\n                    lmap.addMarker(ol.proj.transform(event.coordinate, 'EPSG:3857', 'EPSG:4326'));\n                });\n             },\n             addMarker: function(latlang){\n                 if(!lmap.map){\n                     return false;\n                 }\n                              }\n         };\n          lmap.init();\n         var latitude = document.getElementById('latitude_'+sectionid).value;\n         var longitude = document.getElementById('longitude_'+sectionid).value;\n             }\n\n\n    \/\/jQuery(document).ready(function(){});\n    function getVisible() {\n        if(jQuery('div#wpjobportal-wrapper').length){\n            var div = jQuery('div#wpjobportal-wrapper');\n        }else if(jQuery('div#'+common.theme_chk_prefix+'-reume-form-wrap').length){\n            var div = jQuery('div#'+common.theme_chk_prefix+'-reume-form-wrap');\n        }\n        var maxheight = jQuery(div).outerHeight();\n        var divheight = jQuery('div.js-jobs-resume-apply-now-visitor').height();\n        var scrolltop = jQuery(document).scrollTop();\n        tagheight = currenttop + scrolltop - divheight;\n        if(tagheight > maxheight){\n            tagheight = maxheight - divheight - 15;\n        }\n        jQuery('div.js-jobs-resume-apply-now-visitor').css('top',tagheight+'px');\n    }\n    function cancelJobApplyVisitor(){\n        var result = confirm(\"Are you sure to cancel job apply\");\n        if(result == true){\n            jQuery.post(ajaxurl,{action: 'wpjobportal_ajax', wpjobportalme: 'jobapply', task: 'canceljobapplyasvisitor', '_wpnonce':'1b7221b417'},function(data){\n                if(data){\n                    window.location = data;\n                }\n            });\n        }\n    }\n    function JobApplyVisitor(){\n        var resumeid = jQuery('#resume_temp').val();\n        if(resumeid == -1){\n            alert(\"Please first save the resume then apply\");\n        }else{\n            jQuery.post(ajaxurl,{action: 'wpjobportal_ajax', wpjobportalme: 'jobapply', task: 'visitorapplyjob', '_wpnonce':'25f11e4495'},function(data){\n               if(data){\n                   window.location = data;\n               }\n           });\n        }\n    }\n\n    jQuery(document).ready(function(){\n        if(jQuery('div#wpjobportal-wrapper').length){\n            maindivoffsettop = jQuery('div#wpjobportal-wrapper').offset().top;\n        }else if(jQuery('div#'+common.theme_chk_prefix+'-reume-form-wrap').length){\n            maindivoffsettop = jQuery('div#'+common.theme_chk_prefix+'-reume-form-wrap').offset().top;\n        }\n\n      currenttop = jQuery(window).height() - maindivoffsettop;\n        currenttop = currenttop - 12;\n        jQuery('div.js-jobs-resume-apply-now-visitor').css('top',currenttop+'px');\n        jQuery(window).on('scroll resize', getVisible);\n    });\n\n\n\n    var ajaxurl = \"https:\/\/chefportfolio.ca\/wp-admin\/admin-ajax.php\";\n    var resumefiles = [];\n    var k = 0;\n    var formvalidcheck = true;\n    \/\/Show resumefiles in the popup\n    function showResumeFilesArrayPopup(){\n        jQuery('div#resumefileswrapper span.livefiles').html('');\n        jQuery('span#resume-files-selected').html('');\n        for (i = 0; i < resumefiles.length; i++){\n            var obj = resumefiles[i];\n            var objHTML = '<div class=\"resumefileselected';\n            if (obj.canupload == 0){\n                objHTML += ' errormsg '\n            }\n            objHTML += '\"><span class=\"filename\">' + obj.file.name + '<\/span><span class=\"filesize\">( ' + (obj.file.size \/ 1024) + ' KB )<\/span>';\n            objHTML += '<button onclick=\"removeFileByIndex(' + i + ');\">Remove<\/button>';\n            objHTML += '<\/div>';\n            if (obj.canupload == 0){\n                objHTML += '<div class=\"error_msg\"><b>Error:<\/b> ' + obj.reason + '<\/div>';\n            }\n            jQuery('span#resume-files-selected').append(objHTML);\n            \/\/ append in main resume form\n            if (obj.canupload == 1){\n                var mHTML = '<a href=\"javascript:void(0);\" onclick=\"removeFileByIndex(' + i + ');\" class=\"file\"><span class=\"filename\">' + obj.file.name + '<\/span><span class=\"fileext\"> <\/span><img decoding=\"async\" class=\"filedownload\" src=\"https:\/\/chefportfolio.ca\/wp-content\/plugins\/wp-job-portal\/includes\/images\/resume\/cancel.png\" \/><\/a>';\n                jQuery('div#resumefileswrapper span.livefiles').append(mHTML);\n            }\n        }\n    }\n\n    \/\/Personal files select\n    jQuery(\"body\").on(\"click\", \"span.clickablefiles\", function(e){\n        jQuery('input#resumefiles').click();\n        jQuery(\"input#resumefiles\").change(function(){\n            var srcimage = jQuery('img.rs_photo');\n            var files = this.files;\n            for (i = 0; i < files.length; i++){\n                var fileext = files[i].name.split('.').pop();\n                var filesize = (files[i].size \/ 1024);\n                var allowedExt = \"pdf, doc, docx, xls, xlsx, odt, txt, jpeg,png,jpg\";\n                var allowedSize = \"3072\";\n                var maxFiles = 5;\n                allowedExt = allowedExt.split(',');\n                \/\/ check if the file is already inserted or not\n                var alreadyinserted = 0;\n                if (resumefiles.length > 0){\n                    for (m = 0; m < resumefiles.length; m++){\n                        var aobj = resumefiles[m];\n                        if (aobj.file.name == files[i].name){\n                            if (aobj.file.size == files[i].size){\n                                if (aobj.file.type == files[i].type){\n                                    alreadyinserted = 1;\n                                }\n                            }\n                        }\n                    }\n                }\n                if (alreadyinserted == 0){\n                    canupload = 0;\n                    reason = '';\n                    fileext = fileext.toLowerCase();\n                    if (maxFiles > k ){\n                        if (allowedSize > filesize){\n                            if (jQuery.inArray(fileext, allowedExt) != - 1){\n                                canupload = 1;\n                                k++;\n                            } else{\n                                reason = \"File extension mismatch\";\n                            }\n                        } else{\n                            reason = \"File size exceeds limit\";\n                        }\n                    } else{\n                        reason = \"Maximum files selected\";\n                    }\n\n                    resumefiles.push({'canupload': canupload, 'reason': reason, 'file':files[i]});\n                }\n                console.log('alreadyinserted = ' + alreadyinserted + ' value of k ' + k);\n            }\n            showResumeFilesArrayPopup();\n        });\n    });\n\n    function addValidateCustom(){\n        config = {\n            onError: function(){\n                formvalidcheck = false;\n                console.log('Form invalid data not correct');\n            }\n        }\n        jQuery.validate(config);\n    }\n\n    \/\/Delete resume file stored in db\n    function deleteResumeFile(id){\n        var confirmDelete = confirm(\"Confirm to delete resume file ?\");\n        if (confirmDelete == false) {\n            return false;\n        }\n        jQuery.post(ajaxurl, {wpjobportalme:'resume', action:'wpjobportal_ajax', task:'removeResumeFileById', id:id, '_wpnonce':'e1287d4cbc'}, function (data){\n            if (data){\n                jQuery('a#file_' + id).remove();\n                k--;\n            }\n        });\n    }\n    \/\/Common section add\n    jQuery(\"body\").on('click', 'a.add', function(e){\n        e.preventDefault();\n        var anchor = jQuery(this);\n        var parentDiv = jQuery(this).before();\n        var section = jQuery(this).attr('data-section');\n        var resumeid = jQuery('input#resume_temp').val();\n        if (!resumeid.trim()){\n            alert(\"Please first save resume personal section then add any other section\");\n            return false;\n        }\n        jQuery('div#resume-wating').show();\n        jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'getResumeSectionAjax', section: section, resumeid: resumeid, '_wpnonce':'86d2438194'}, function(data){\n            jQuery(parentDiv).after(data);\n            jQuery(anchor).remove();\n            addDatePicker();\n            addValidateCustom();\n            jQuery('div#resume-wating').hide();\n        });\n    });\n    function removeFileByIndex(index){\n        if (resumefiles.indexOf(index) == - 1){\n            resumefiles.splice(index, 1);\n            k--;\n            showResumeFilesArrayPopup();\n        }\n        return false;\n    }\n\n    function addDatePicker(){\n        jQuery('.custom_date').datepicker({dateFormat: 'yy-m-d'});\n    }\n    jQuery(document).ready(function () {\n        addDatePicker();\n        jQuery(\"div#black_wrapper_jobapply,div#warn-message span.close-warnmessage,div#resume-files-popup-wrapper span.close-resume-files\").click(function () {\n            jQuery(\"div#warn-message\").fadeOut();\n            jQuery(\"div#black_wrapper_jobapply\").fadeOut();\n            jQuery(\"div#resume-files-popup-wrapper\").fadeOut();\n        });\n        \/\/More option\n        jQuery(\"body\").on('click', 'span.resume-moreoptiontitle', function(e){\n            e.preventDefault();\n            var img = jQuery(this).find('img');\n            if (jQuery('div.resume-moreoption').is(':hidden')) {\n                var srcimg = 'https:\/\/chefportfolio.ca\/wp-content\/plugins\/wp-job-portal\/includes\/images\/resume\/up.png';\n            } else{\n                var srcimg = 'https:\/\/chefportfolio.ca\/wp-content\/plugins\/wp-job-portal\/includes\/images\/resume\/down.png';\n            }\n            jQuery('div.resume-moreoption').toggle();\n            jQuery(img).attr('src', srcimg);\n        });\n        \/\/Resume select file\n        jQuery(\"body\").on('click', 'span.resume-selectfiles', function(e){\n            e.preventDefault();\n            jQuery('div#black_wrapper_jobapply').show();\n            jQuery('div#resume-files-popup-wrapper').fadeIn();\n            showResumeFilesArrayPopup();\n        });\n        \/\/Common section edit\n        jQuery(\"body\").on('click', 'div.section_wrapper a.edit', function(e){\n            jQuery('div#resume-wating').show();\n            e.preventDefault();\n            var div = jQuery(this).parent().parent();\n            var section = jQuery(div).attr('data-section');\n            var sectionid = jQuery(div).attr('data-sectionid');\n            var resumeid = jQuery('input#resume_temp').val();\n            jQuery('a[data-section=\"' + section + '\"]').remove();\n            jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'getResumeSectionAjax', section: section, sectionid:sectionid, resumeid: resumeid, '_wpnonce':'86d2438194'}, function(data){\n                jQuery(div).html(data);\n                addDatePicker();\n                addValidateCustom();\n                jQuery('div#resume-wating').hide();\n            });\n        });\n        \/\/Common section delete\n        jQuery(\"body\").on('click', 'div.section_wrapper a.delete', function(e){\n            e.preventDefault();\n            var confirmDelete = confirm(\"Are you sure to delete ?\");\n            if (confirmDelete == false) {\n                return false;\n            }\n            jQuery('div#resume-wating').show();\n            var div = jQuery(this).parent().parent();\n            var section = jQuery(div).attr('data-section');\n            var sectionid = jQuery(div).attr('data-sectionid');\n            var resumeid = jQuery('input#resume_temp').val();\n            jQuery('a[data-section=\"' + section + '\"]').remove();\n            jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'deleteResumeSectionAjax', section: section, sectionid:sectionid, resumeid: resumeid, '_wpnonce':'8d7579f255'}, function(data){\n                var object = jQuery.parseJSON(data);\n                if (object.result == 1){\n                    jQuery(div).html(object.msg);\n                } else{\n                    jQuery(div).prepend(object.msg);\n                }\n                if (object.canadd == 1){\n                    jQuery(div).after(object.anchor);\n                }\n                jQuery('div#resume-wating').hide();\n            });\n        });\n        \/\/Personal section edit\n        jQuery(\"body\").on('click', 'a.personal_section_edit', function(e){\n            jQuery('div#resume-wating').show();\n            e.preventDefault();\n            var div = jQuery('div#resume-wrapper');\n            var section = 'personal';\n            var resumeid = jQuery('input#resume_temp').val();\n            jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'getResumeSectionAjax', section: section, resumeid: resumeid, '_wpnonce':'86d2438194'}, function(data){\n                jQuery(div).find('div.resume-top-section').remove();\n                jQuery(div).find('div.resume-section-title.personal').remove();\n                jQuery(div).find('div[data-section=\"personal\"]').remove();\n                jQuery(div).prepend(data);\n                addDatePicker();\n                addValidateCustom();\n                jQuery('div#resume-wating').hide();\n            });\n        });\n        \/\/Skill section edit\n        jQuery(\"body\").on('click', 'a.skilledit', function(e){\n            e.preventDefault();\n            var div = jQuery(this).parent().next('div[data-section=\"skills\"]');\n            var section = 'skills';\n            var resumeid = jQuery('input#resume_temp').val();\n            if (!resumeid.trim()){\n                alert(\"Please first save resume personal section then add any other section\");\n                return false;\n            }\n            jQuery('div#resume-wating').show();\n            jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'getResumeSectionAjax', section: section, resumeid: resumeid, '_wpnonce':'86d2438194'}, function(data){\n                jQuery(div).html(data);\n                addValidateCustom();\n                jQuery('div#resume-wating').hide();\n            });\n        });\n        \/\/Resume section edit\n        jQuery(\"body\").on('click', 'a.resumeedit', function(e){\n            e.preventDefault();\n            var div = jQuery(this).parent().next('div[data-section=\"resume\"]');\n            var section = 'resume';\n            var resumeid = jQuery('input#resume_temp').val();\n            if (!resumeid.trim()){\n                alert(\"Please first save resume personal section then add any other section\");\n                return false;\n            }\n            jQuery('div#resume-wating').show();\n            jQuery.post(ajaxurl, {action: 'wpjobportal_ajax', wpjobportalme: 'resume', task: 'getResumeSectionAjax', section: section, resumeid: resumeid, '_wpnonce':'86d2438194'}, function(data){\n                jQuery(div).html(data);\n                try { tinymce.execCommand('mceAddEditor', true, 'resume'); } catch (e){console.log(e); }\n                addValidateCustom();\n                jQuery('div#resume-wating').hide();\n                \/*\n                 \/\/init quicktags\n                 quicktags({id : 'resume'});\n                 \/\/init tinymce\n                 tinymce.init(tinyMCEPreInit.mceInit['resume']);\n                 \/*\n                 tinymce.init({skin:'wordpress'});\n                 tinyMCE.execCommand('mceAddEditor', true, 'resume');\n                 tinyMCE.execCommand('mceAddControl', true, 'resume');\n                 \/*\n                 tinyMCE.execCommand('mceRemoveEditor', true, 'resume');\n                 tinyMCE.init({\n                 skin : \"wordpress\",\n                 mode : \"exact\",\n                 elements : \"resumeeditor\"\n                 });\n                 tinyMCE.execCommand('mceAddEditor', false, 'resume');\n                 tinyMCE.execCommand('mceAddControl', true, 'resume');\n                 *\/\n             });\n        });\n        \/\/Personal Edit photo live change\n         jQuery(\"input#photo\").change(function(){\n                var srcimage = jQuery('img.rs_photo');\n                readURL(this, srcimage);\n            });\n        addValidateCustom();\n    });\nfunction readURL(input, srcimage) {\n    if (input.files && input.files[0]) {\n        var fileext = input.files[0].name.split('.').pop();\n        var filesize = (input.files[0].size \/ 1024);\n        var allowedsize = 2048;\n        var allowedExt = 'png,jpeg,gif,jpg';\n        allowedExt = allowedExt.split(',');\n        if (jQuery.inArray(fileext, allowedExt) != - 1){\n            if (allowedsize > filesize){\n                var reader = new FileReader();\n                reader.onload = function (e) {\n                jQuery(srcimage).attr('src', e.target.result);\n                jQuery('.wjportal-form-image-wrp').show();\n                jQuery('.wjportal-form-upload-btn-wrp-txt').html(input.files[0].name);\n                jQuery('.wjportal-form-upload-btn-wrp-txt').show();\n                jQuery('img#wjportal-form-delete-image').on('click',function(){\n                    jQuery('.wjportal-form-image-wrp').hide();\n                    jQuery('input#photo').val('').clone(true);\n                    jQuery('span.wjportal-form-upload-btn-wrp-txt').hide();\n                    jQuery('span.wjportal-form-upload-btn-wrp-txt').text('');\n                });\n               }\n                reader.readAsDataURL(input.files[0]);\n            } else{\n                jQuery('input#photo').replaceWith(jQuery('input#photo').val('').clone(true));\n                alert(\"File size is greater then allowed file size\");\n            }\n        } else{\n            jQuery('input#photo').replaceWith(jQuery('input#photo').val('').clone(true));\n            alert(\"File ext. is mismatched\");\n        }\n    }\n}\nfunction submitresume(){\n    var formvalid = jQuery('form.has-validation-callback').isValid({\n        onfocusout: false,\n        invalidHandler: function(form, validator) {\n            var errors = validator.numberOfInvalids();\n            if (errors) {\n                validator.errorList[0].element.focus();\n            }\n        }\n    });\n    if(formvalid == false){\n        return;\n    }\n    var test = true;\n    jQuery(\"form#resumeform :input[type=email]\").each(function(){\n        var emailValue = jQuery(this).val();\n        if(emailValue.length != 0){\n            var pattern = \/^([a-zA-Z0-9_.+-])+\\@(([a-zA-Z0-9-])+\\.)+([a-zA-Z0-9]{2,4})+$\/;\n            test = pattern.test(emailValue);\n            if (test == false) {\n                jQuery(this).css({ \"border-color\": 'red'});\n            }\n        }\n    });\n    if (test == false) {\n        alert('Email is not of correct Format');\n    } else {\n        var termsandcondtions = jQuery(\"div.wpjobportal-terms-and-conditions-wrap\").attr(\"data-wpjobportal-terms-and-conditions\");\n        if(termsandcondtions == 1){\n            if(!jQuery(\"input[name='termsconditions']\").is(\":checked\")){\n                alert(common.terms_conditions);\n                event.preventDefault();\n                return false;\n            }\n        }\n        jQuery('div#resume-wating').show();\n        var resume = '';\n        if(tinyMCE.editors.length > 0){\n            var resume = tinyMCE.activeEditor.getContent();\n        }\n        jQuery('input#resume_edit_val').val(resume);\n        jQuery('#resumeform').submit();\n    }\n}\n    \/\/Common resume submit\n    function submitresumesection(section, sectionid){\n\n    }\n    \/\/Common resume cancel\n\n    function cancelresume(){\n\n\n    }\n\n    function cancelresumesection1(section, sectionid){\n        jQuery('div#resume-wating').show();\n        var resumeid = jQuery('input#resume_temp').val();\n        var params = {};\n        params['action'] = 'wpjobportal_ajax';\n        params['wpjobportalme'] = 'resume';\n        params['task'] = 'cancelResumeSectionAjax';\n        params['section'] = section;\n        params['sectionid'] = sectionid;\n        params['resumeid'] = resumeid;\n        formdata.append('_wpnonce', '9c609ad6f1');\n        jQuery.post(ajaxurl, params, function(data){\n            if (section == 'resume'){\n                tinyMCE.remove();\n            }\n            var object = jQuery.parseJSON(data);\n            if (section != 'resume'){\n                if (section != 'skills'){\n                    if (section != 'personal'){\n                        if (object.canadd == 1){\n                            jQuery('div[data-section=\"' + section + '\"][data-sectionid=\"' + sectionid + '\"]').after(object.anchor);\n                        }\n                    }\n                }\n            }\n            jQuery('div[data-section=\"' + section + '\"][data-sectionid=\"' + sectionid + '\"]').replaceWith(object.html);\n            if (section == 'addresses'){\n                var htmlobject = jQuery.parseHTML(object.html);\n                var id = jQuery(htmlobject).find('div.map').attr('id');\n                if (document.getElementById('script_' + id) != 'undefined'){\n                    if (document.getElementById('script_' + id) != null){\n                        eval(document.getElementById('script_' + id).innerHTML);\n                    }\n                }\n            }\n            jQuery('div#resume-wating').hide();\n        });\n    }\n\n    function getTokenInput(fieldname, fieldeditname) {\n        var citylink = 'https:\/\/chefportfolio.ca\/fr\/add-resume-2\/?wpjobportalme=city&task=getaddressdatabycityname&action=wpjobportaltask&wpjobportalpageid=547';\n\n        var city = jQuery(\"#\" + fieldeditname).val();\n        alert(city);\n        if (city != \"\") {\n            city = jQuery.parseJSON(city);\n            jQuery(\"#\" + fieldname).tokenInput(citylink, {\n                theme: \"wpjobportal\",\n                preventDuplicates: true,\n                hintText: \"Type In A Search Term\",\n                noResultsText: \"No Results\",\n                searchingText: \"Searching\",\n                tokenLimit: 1,\n                prePopulate: [{id:city.id, name:city.name}],\n                        });\n        } else {\n            jQuery(\"#\" + fieldname).tokenInput(citylink, {\n                theme: \"wpjobportal\",\n                preventDuplicates: true,\n                hintText: \"Type In A Search Term\",\n                noResultsText: \"No Results\",\n                searchingText: \"Searching\",\n                tokenLimit: 1,\n                                });\n        }\n\n    }\n\n    function initialize(lat, lang, div) {\n        var myLatlng = new google.maps.LatLng(lat, lang);\n        var myOptions = {\n            zoom: 8,\n            center: myLatlng,\n            mapTypeId: google.maps.MapTypeId.ROADMAP\n        }\n        var map = new google.maps.Map(document.getElementById(div), myOptions);\n        var marker = new google.maps.Marker({\n            map: map,\n            position: myLatlng\n        });\n    }\n\n    function initializeEdit(lat, lang, div) {\n        var myLatlng = new google.maps.LatLng(lat, lang);\n        var myOptions = {\n            zoom: 8,\n            center: myLatlng,\n            mapTypeId: google.maps.MapTypeId.ROADMAP\n        }\n        var map = new google.maps.Map(document.getElementById(div), myOptions);\n        var marker = new google.maps.Marker({\n            map: map,\n            position: myLatlng\n        });\n        var lastmarker = marker;\n        google.maps.event.addListener(map, \"click\", function (e) {\n            var latLng = new google.maps.LatLng(e.latLng.lat(), e.latLng.lng());\n            geocoder = new google.maps.Geocoder();\n            geocoder.geocode({'latLng': latLng}, function (results, status) {\n                if (status == google.maps.GeocoderStatus.OK) {\n                    if (lastmarker != '')\n                        lastmarker.setMap(null);\n                    var marker = new google.maps.Marker({\n                        position: results[0].geometry.location,\n                        map: map,\n                    });\n                    marker.setMap(map);\n                    lastmarker = marker;\n                    document.getElementById('latitude_' + div).value = marker.position.lat();\n                    document.getElementById('longitude_' + div).value = marker.position.lng();\n                } else {\n                    alert(\"Geocode was not successful for the following reason: \" + status);\n                }\n            });\n        });\n    }\n\n    jQuery(document).ready(function(){\n        var print_link = document.getElementById('print-link');\n        if (print_link) {\n                        var href = 'https:\/\/chefportfolio.ca\/fr\/add-resume-2\/resume-print\/0';\n            print_link.addEventListener('click', function (event) {\n                print = window.open(href, 'print_win', 'width=1024, height=800, scrollbars=yes');\n                event.preventDefault();\n            }, false);\n        }\n    });\n\n    function getTokenInputTags(multitags) {\n        var tagArray = 'https:\/\/chefportfolio.ca\/wp-admin\/admin.php?page=wpjobportal_tag&tagfor=2&action=wpjobportaltask&task=gettagsbytagname';\n        jQuery(\"#tags\").tokenInput(tagArray, {\n            theme: \"wpjobportal\",\n            preventDuplicates: true,\n            hintText: \"Type In A Search Term\",\n            noResultsText: \"No Results\",\n            searchingText: \"Searching\",\n            tokenLimit: 5,\n            prePopulate: multitags,\n                    });\n    }\n\n\n    function dateValidator(sectionid){\n        var from = jQuery(\"#employer_from_date4\"+sectionid).val();\n        var to = jQuery(\"#employer_to_date4\"+sectionid).val();\n        if(Date.parse(from) > Date.parse(to)){\n           alert(\"To Date Must Be Greater than From Date!\");\n           jQuery('#employer_to_date4'+sectionid).val('');\n           jQuery('#employer_to_date4'+sectionid).focus();\n        }\n    }\n\n  function onSubmit(token) {\n    \/\/document.getElementById('resumeform').submit();\n    submitresume();\n  }\n  \n<\/script>\n<div class=\"wpj-jp-page-header-wrap\" style=\"background-image:url(https:\/\/chefportfolio.ca\/wp-content\/uploads\/2026\/01\/chefs-eye-view1-scaled.jpg);background-size: cover;background-position: center center;\"><div class=\"container\"><div class=\"row\"><div class=\"col-md-12\"><h1 class=\"wpj-jp-header-tit\">\n\t\t\t                \t\t\tAdd&nbsp;Resume\n\t\t                \t\t\t<\/h1><\/div><\/div><\/div><\/div><!-- page main content -->\n<div class=\"wpj-jp-page-content-wrp wpj-jp-section-bg wpj-jp-sec-ptb-60\" >\n\t<div class=\"container\">\n        <div class=\"row\">\n            <div class=\"col-md-12\">\n\t\t\t\t<div class=\"wpj-jp-error-messages-wrp\">\n\t                        <div class=\"wpj-jp-emsg-image\">\n                                <img data-recalc-dims=\"1\" decoding=\"async\" alt=\"Not logged in\" src=\"https:\/\/i0.wp.com\/chefportfolio.ca\/wp-content\/themes\/job-portal-theme\/images\/error-messages\/not-allowed.png?w=1170&#038;ssl=1\" \/>\n\t                        <\/div>\n\t                        <div class=\"wpj-jp-emsg-cnt\">\n                            \t<h5 class=\"wpj-jp-emsg-txt\">You are not logged in<\/h5>\n\t                            <h6 class=\"wpj-jp-emsg-txt\"> \n\t                            \tPlease Login To Access This Page <br \/>\n                                <\/h6>\n                            \t<h6 class=\"wpj-jp-emsg-txt\"> \n\t                            \tPlease Register If You Are Not A Registered Member\n                            \t<\/h6>\n                            <\/div><\/div>\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"templates\/template-fullwidth.php","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"footnotes":""},"class_list":["post-547","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"jetpack_shortlink":"https:\/\/wp.me\/PbHTs6-8P","_links":{"self":[{"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/pages\/547","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/comments?post=547"}],"version-history":[{"count":0,"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/pages\/547\/revisions"}],"wp:attachment":[{"href":"https:\/\/chefportfolio.ca\/fr\/wp-json\/wp\/v2\/media?parent=547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}