CINXE.COM
Available jobs - Search - Job Bank
<!DOCTYPE html> <html class="no-js" lang="en" dir="ltr"><head id="j_id_5"> <meta charset="utf-8" /> <title>Available jobs - Search - Job Bank </title> <meta content="width=device-width,initial-scale=1" name="viewport" /> <meta name="dcterms.language" content="eng" /> <meta name="dcterms.creator" content="Employment and Social Development Canada" /> <meta name="dcterms.service" content="ESDC-EDSC_JobBank-GuichetEmplois" /> <meta name="dcterms.accessRights" content="2" /><meta name="dcterms.title" content="Search results - Search - Job Bank" /> <meta property="og:title" content="Available jobs - Search" /> <meta property="og:description" name="description" content="View 124,243 job postings near various occupations on Job Bank, Canada’s one-stop job board." /> <meta property="og:url" content="/jobsearch/jobsearch" /> <meta property="og:image" content="https://www.jobbank.gc.ca/themes-sat/assets/favicon-mobile.png" /> <meta name="smartbanner:title" content="Job Bank" /> <meta name="smartbanner:author" content="ESDC – EDSC" /> <meta name="smartbanner:price" content="Free" /> <meta name="smartbanner:price-suffix-apple" content="– On the App Store" /> <meta name="smartbanner:price-suffix-google" content="– In Google Play" /> <meta name="smartbanner:icon-apple" content="/themes-jb/images/icons/mobileapp/icons-512.png" /> <meta name="smartbanner:icon-google" content="/themes-jb/images/icons/mobileapp/icons-512.png" /> <meta name="smartbanner:button" content="Free" /> <meta name="smartbanner:button-url-apple" content="https://itunes.apple.com/ca/app/job-bank/id1351432365?mt=8" /> <meta name="smartbanner:button-url-google" content="https://play.google.com/store/apps/details?id=ca.jobbank.mobile&amp;hl=en" /> <meta name="smartbanner:enabled-platforms" content="android,ios" /> <meta name="smartbanner:exclude-user-agent-regex" content=".*(Tablet|iPad|Windows).*" /> <meta name="smartbanner:hide-ttl" content="86400000" /> <meta name="smartbanner:custom-design-modifier" content="jobbanksb" /> <meta name="smartbanner:tagline" content="Your career starts here" /> <meta name="smartbanner:download" content="Download the app now" /> <meta name="smartbanner:close" content="Close" /> <link rel="stylesheet" href="/themes-jb/js/third-party/smartbanner/smartbanner.css" /> <script src="/themes-jb/js/third-party/smartbanner/smartbanner.js"></script> <script> var onLoadHandlerForConflictTesting = function() {}; window.onload = onLoadHandlerForConflictTesting; </script><meta name="smartbanner:page" content="jobSearchPage" /><link type="text/css" rel="stylesheet" href="/jakarta.faces.resource/primeicons/primeicons.css.xhtml;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?ln=primefaces&v=12.0.0" /><script type="text/javascript" src="/jakarta.faces.resource/jsf.js.xhtml;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?ln=jakarta.faces"></script><script type="text/javascript">if(window.PrimeFaces){PrimeFaces.settings.locale='en_CA';PrimeFaces.settings.viewId='/jobsearch/job_search.xhtml';PrimeFaces.settings.contextPath='';PrimeFaces.settings.cookiesSecure=false;}</script> <link href="/themes-sat/assets/favicon.ico" rel="icon" type="image/x-icon" /> <link rel="stylesheet" href="/themes-sat/css/theme.min.css" /> <link rel="stylesheet" href="/themes-sat/css/cdtsfixes.css" /> <link rel="stylesheet" href="/themes-sat/css/apps.css" /> <link href="/themes-jb/fontawesomepro/css/all.min.css" rel="stylesheet" /> <link href="/themes-jb/fontawesomepro/css/v4-shims.min.css" rel="stylesheet" /> <link rel="stylesheet" href="/themes-jb/js/css/jquery.timepicker.css" /> <link rel="stylesheet" href="/themes-jb/css/theme-jb.css" /> <link rel="stylesheet" href="/themes-jb/js/css/typeahead.css" /> <noscript> <link rel="stylesheet" href="/themes-sat/css/noscript.min.css" /> <link rel="stylesheet" href="/themes-sat/css/appsnoscript.css" /> </noscript> <link rel="stylesheet" href="/themes-jb/css/project-jb-style.css" /> <link rel="stylesheet" href="/themes-jb/css/project-style.css" /> <link href="/themes-jb/js/leaflet/leaflet.css" rel="stylesheet" /> <style> #wb-bc { display: none; } main h1#wb-cont { color: #666 !important; font-size: 1.3em; font-weight: 400; margin: 8px 0 6px 0 !important; display: inline-block; padding: 0 0 0 19px; } #removeVirtualNudge { float: right; } .removeNudge:hover { color: red; } @media screen and (min-width: 992px) { main h1#wb-cont { } } #removeJobSearchNudge { float: right; } #removeJobSearch:hover { color: red; } </style><!--[if lt IE 9]> <link rel="stylesheet" href="/themes-jb/css/project-style-ie8.css" /><![endif]--> <link rel="stylesheet" href="/invitation-manager/Overlay.css" /> <script> //<![CDATA[ dataLayer1 = []; (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-W625MMN'); //]]> </script> <script src="//assets.adobedtm.com/be5dfd287373/9b9cb7867b5b/launch-59d77766b86a.min.js"></script></head><body vocab="https://schema.org/" typeof="WebPage"> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W625MMN" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <nav> <ul id="wb-tphp"> <li class="wb-slc hidden-sm hidden-xs"><a class="wb-sl" href="#searchString">Skip to job search</a></li> <li class="wb-slc"><a class="wb-sl" href="#wb-cont">Skip to main content</a></li> <li class="wb-slc visible-sm visible-md visible-lg"><a class="wb-sl" href="#wb-info">Skip to "About this Web application"</a></li> </ul> </nav> <header> <div id="wb-bnr" class="container"> <div class="row"> <section id="wb-lng" class="pull-right text-right"> <h2 class="wb-inv">Language selection</h2> <ul class="list-inline mrgn-bttm-0"> <li> <a href="https://www.guichetemplois.gc.ca/jobsearch/" lang="fr"> <span class="hidden-xs">Français</span> <abbr title="Français" class="visible-xs h3 mrgn-tp-sm mrgn-bttm-0 text-uppercase">fr</abbr> </a> </li> </ul> </section> <div class="brand col-xs-9 col-sm-5 col-md-4" property="publisher" typeof="GovernmentOrganization"> <img src="/themes-sat/assets/sig-blk-en.svg" alt="" property="logo" /><span class="wb-inv" property="name"> Government of Canada / <span lang="fr">Gouvernement du Canada</span></span> <meta property="areaServed" typeof="Country" content="Canada" /> <link property="logo" href="/themes-sat/assets/wmms-blk.svg" /> </div> <section id="wb-srch" class="col-lg-offset-4 col-md-offset-4 col-sm-offset-2 col-xs-12 col-sm-5 col-md-4 visible-md visible-lg"> <h2>Search</h2> <form action="#" method="post" name="cse-search-box" role="search" class="form-inline"> <div class="form-group wb-srch-qry"> <label for="wb-srch-q" class="wb-inv">Search website</label> <input id="wb-srch-q" class="wb-srch-q form-control" name="q" type="search" value="" size="34" maxlength="170" placeholder="Search" /> </div> <div class="form-group submit"> <button type="submit" id="wb-srch-sub" class="btn btn-primary btn-small" name="wb-srch-sub"><span class="glyphicon-search glyphicon"></span><span class="wb-inv">Search</span></button> </div> </form> </section> </div> </div> <div class="app-bar"> <div class="container"> <div class="row"> <section class="col-xs-12 col-sm-6"> <h2 class="wb-inv">Job Bank</h2><a class="app-name" href="https://www.jobbank.gc.ca/home">Job Bank</a> </section> <nav class="col-sm-6 hidden-xs hidden-print"><form id="j_id_2k_2" name="j_id_2k_2" method="post" action="/jobsearch/;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" class="dept-nav" enctype="application/x-www-form-urlencoded"> <h2 class="wb-inv">Account menu</h2> <ul class="app-list-account list-unstyled"> <li class="signon btn-group pull-right "> <button type="button" class="btn dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="title"><span class="in-icon fas fa-user-circle fa-lg" aria-hidden="true"></span> <span class="fullName">Sign in</span><span class="fa fa-chevron-down" aria-hidden="true"></span></span> </button> <ul class="dropdown-menu"> <li><a href="https://www.jobbank.gc.ca/login">Job seekers</a></li> <li><a href="https://employer.jobbank.gc.ca/employer/dashboard">Employers</a></li> </ul> </li> </ul><input type="hidden" name="j_id_2k_2_SUBMIT" value="1" /><input type="hidden" name="jakarta.faces.ViewState" id="j_id__v_0:jakarta.faces.ViewState:1" value="stateless" autocomplete="off" /></form> </nav> </div> </div> </div> <div class="app-bar-mb container visible-xs-block hidden-print"> <nav> <h2 class="wb-inv">Menu and search</h2> <ul class="app-list-main list-unstyled"> <li class="wb-mb-links" id="wb-glb-mn"><a href="#mb-pnl" aria-controls="mb-pnl" class="btn overlay-lnk" role="button">Menu</a><h2>Menu</h2></li> </ul> <div id="mb-pnl"></div> </nav> <nav> <h2 class="wb-inv">Account menu</h2><form id="j_id_2o_2" name="j_id_2o_2" method="post" action="/jobsearch/;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" class="dept-nav" enctype="application/x-www-form-urlencoded"> <ul class="app-list-account list-unstyled"> <li class="signon btn-group pull-right "> <button type="button" class="btn dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span class="title"><span class="in-icon fas fa-user-circle fa-lg" aria-hidden="true"></span> <span class="fullName">Sign in</span><span class="fa fa-chevron-down" aria-hidden="true"></span></span> </button> <ul class="dropdown-menu"> <li><a href="https://www.jobbank.gc.ca/login">Job seekers</a></li> <li><a href="https://employer.jobbank.gc.ca/employer/dashboard">Employers</a></li> </ul> </li> </ul><input type="hidden" name="j_id_2o_2_SUBMIT" value="1" /><input type="hidden" name="jakarta.faces.ViewState" id="j_id__v_0:jakarta.faces.ViewState:2" value="stateless" autocomplete="off" /></form> </nav> </div> <nav id="wb-sm" data-ajax-replace="/themes-sat/ajax/appmenu.xhtml" data-trgt="mb-pnl" class="wb-menu visible-md visible-lg" typeof="SiteNavigationElement"> <div class="pnl-strt container nvbar"> <h2 class="wb-inv">Main navigation menu</h2> <div class="row"> <ul class="list-inline menu" role="menubar"> <li role="none"><a href="https://www.jobbank.gc.ca/findajob" class="item">Job search</a></li> <li role="none"><a href="https://www.jobbank.gc.ca/career-planning" class="item">Career planning</a></li> <li role="none"><a href="https://www.jobbank.gc.ca/trend-analysis" class="item">Labour market information</a></li> <li role="none"><a href="https://www.jobbank.gc.ca/employers" class="item">Hiring</a></li> <li role="none"><a href="https://www.jobbank.gc.ca/aboutus" class="item">Help</a></li> <li role="none"><a href="https://www.jobbank.gc.ca/intro" class="item">About</a></li> </ul> </div> </div> </nav> <nav id="wb-bc" property="breadcrumb"> <h2>You are here:</h2> <div class="container"> <ol class="breadcrumb"><li><a href="https://www.jobbank.gc.ca/" >Job Bank</a></li> </ol> </div> </nav> </header> <div id="header-search"> <section id="search-apps-group"> <div class="container"> <div class="search-tabs col-md-12 row"> <div class="dashboard-header-content col-md-12"> <div class="featured-group"> <div class="brand-wrap"> <span class="featured-icon-wrapper"> <span class="featured-icon-brand i-search"></span> </span> <div class="text"> <p class="title">Discover jobs</p> <p class="task">Job Search</p> </div> </div> </div> <div class="clearfix"></div> </div> <span class="wb-inv">jobsearch</span> <nav id="jb-sm"> <ul class="search-apps col-md-12" aria-label="Job Bank Job search"> <li class="mobile-menu" role="none"><a href="#" aria-haspopup="true" aria-expanded="false"><span class="fas fa-chevron-circle-right" aria-hidden="true"></span> <span class="title">Job search tools</span></a> <ul aria-label="Job Bank Job search" role="menubar"> <li role="none"> <a class=" btn " href="/dashboard" role="menuitem"> <span class="fal fa-desktop dashboard-icon" aria-hidden="true"></span> <span class="dashboard-label title dashboard-label">Dashboard</span> </a> </li> <li role="none"> <a class="active btn" href="/jobsearch/jobsearch?" role="menuitem"> <span class="fas fa-search" aria-hidden="true"></span> <span class="title dashboard-label">Search</span> </a> </li> <li role="none"> <a class=" btn" href="/jobsearch/jobalert" role="menuitem"> <span class="fal fa-bell" aria-hidden="true"></span> <span class="title dashboard-label">Alerts</span> </a> </li> <li role="none"> <a class=" btn " href="/match" role="menuitem"> <span class="fal fa-briefcase" aria-hidden="true"></span> <span class="title dashboard-label">Match</span> </a> </li> <li role="none"> <a class=" btn" href="/jobsearch/favourites" role="menuitem"> <span class="fal fa-heart" aria-hidden="true"></span> <span class="title dashboard-label">My jobs</span> </a> </li> <li role="none"> <a class=" btn" href="/resumebuilder/list" role="menuitem"> <span class="fal fa-file-text" aria-hidden="true"></span> <span class="title dashboard-label">My resumes</span> </a> </li> </ul> </li> </ul> </nav> </div> <div class="clearfix"></div> <div id="jobSearchBar" class="search-input-content "> <form id="jobSearchResultsJobSearchForm" class="search-module" action="/jobsearch/jobsearch" accept-charset="UTF-8"> <h2 class="wb-inv">Job Search</h2> <div class="input-wrapper"> <div class="input-group input-dual"> <div class="input-combo col-md-6"> <div class="input-field"> <label class="input-label" for="searchString">Keywords:</label> <input name="searchstring" id="searchString" type="text" class="searchString form-control input-lg" value="" placeholder="Job title, employer" maxlength="1000" /> </div> </div> <div class="input-combo col-md-6"> <div class="ta-cityprovsuggest input-field"><label id="searchLocationLabel" class="input-label" for="locationstring">Location:<span id="error-loc-input-field"></span></label><input id="locationstring" name="locationstring" type="text" value="" class="locationstring form-control input-lg" placeholder="City, province or territory" /> <span id="ta-citysuggest-suggestioncount" data-name="suggestioncount" role="status" aria-live="polite" class="form-control typeahead-helper-hidden-accessible"></span> <span role="status" id="ta-citysuggest-selected-title" class="form-control ta-jobtitlesuggest-message ta-communitysuggest-selected-title typeahead-helper-hidden-accessible"></span><input type="hidden" id="locationparam" name="locationparam" value="" /> <div id="cityPostalCodeSpecial" class="tt-menu wb-inv"> <div class="tt-dataset tt-dataset-ta-cityprovsuggest"> <ul> <li><a href="#" data-input="canada"><span class="fab fa-canadian-maple-leaf" aria-hidden="true"></span> All of Canada</a></li> <li><a href="#" data-input="local"><span class="far fa-bullseye-pointer" aria-hidden="true"></span> Current location</a></li> </ul> </div> </div> </div> </div> <div class="input-group-btn"> <div id="defaultsubmit" class="hidden"> <button id="searchButtonDefault" type="submit">Search</button> </div> <div class="results"> <button id="advanced-search-button" class="secondary-functions btn btn-link nowrap" type="submit" onclick="actiontodataurl(this);" data-url="/jobsearch/advancedsearch">Advanced</button> <a class="secondary-functions btn btn-link nowrap" href="/browsejobs">Browse</a> </div> <button id="searchButton" class="btn btn-primary" type="submit"><span class="fa-icon far fa-search" aria-hidden="true"></span> Search</button> </div> </div> </div> <div class="clearfix"></div> <div class="clearfix"></div> </form> </div> </div> </section> </div> <main role="main" property="mainContentOfPage" typeof="WebPageElement" class="container"> <div id="messageblock-content" tabindex="-1"><div id="messageblock" role="alert" aria-live="assertive"></div> </div> <div id="loading" class="loading done row"> <div class="content-box col-lg-4 col-md-4 col-sm-6 col-xs-10"> <div class="sk-wave"> <div class="sk-rect sk-rect1"></div> <div class="sk-rect sk-rect2"></div> <div class="sk-rect sk-rect3"></div> <div class="sk-rect sk-rect4"></div> <div class="sk-rect sk-rect5"></div> </div> <div class="clearfix"></div> <span class="h3 pulsate">Loading, please wait...</span> </div> </div> <section id="search-input-content-nav" class="search-input-content-nav"> <h2 class="wb-inv">Job Search Mobile</h2> </section><form id="dashboardNudges" name="dashboardNudges" method="post" action="/jobsearch/;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" enctype="application/x-www-form-urlencoded"><input type="hidden" name="dashboardNudges_SUBMIT" value="1" /><input type="hidden" name="jakarta.faces.ViewState" id="j_id__v_0:jakarta.faces.ViewState:3" value="stateless" autocomplete="off" /></form><form id="ajaxupdateform" name="ajaxupdateform" method="post" action="/jobsearch/;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" enctype="application/x-www-form-urlencoded"><a href="#" onclick="jsf.util.chain(this, event,'jsf.ajax.request(this,event,{render:\'@form \',\'jakarta.faces.behavior.event\':\'action\'})'); return false;" id="ajaxupdateform:j_id_31_3_b" name="ajaxupdateform:j_id_31_3_b" class="hidden"></a> <section class="row results-content filter-visible"> <div class="overlay"></div> <div id="results-list-wrapper" class="results-list-wrapper col-md-9"> <h1 property="name" id="wb-cont">Available jobs - Search</h1> <div id="results-list-content" class="results-list-content"> <span class="skip-to-filters wb-init wb-disable-inited visible-md visible-lg"><span class="wb-slc"><a href="#locationstring-radiusmap" class="wb-sl" tabindex="0">Skip to filters</a></span></span> <span class="skip-to-filters wb-init wb-disable-inited visible-md visible-lg"><span class="wb-inv">Below is an interactive map</span> <span class="wb-slc"><a href="#map-help" class="wb-sl" tabindex="0">Skip to map</a></span></span> <div class="results-nav"> <div class="results-filter-button-overlay"> <button class="btn btn-default btn-sm command-result-filter-overlay" type="button"><span class="fal fa-sliders-h" aria-hidden="true"></span> Filters</button> <button class="btn btn-default btn-sm command-result-sortby-overlay" type="button"><span class="fas fa-sort" aria-hidden="true"></span> Sort by</button> <button class="btn btn-primary btn-sm command-search-overlay" type="button"><span class="far fa-search" aria-hidden="true"></span> <span class="text">Search</span></button> </div> <div class="clearfix"></div> <div class="jobalert-results-group row"> <div class="results-summary "> <h2><span class="found" aria-live="polite" aria-atomic="true">124,243</span> results </h2> </div> <div class="results-sortby-group btn-group"> <span class="hidden-xs btn btn-sort nowrap">Sort by:</span><a href="?page=1&sort=M" class="btn btn-default btn-sm active nowrap"><span class="fas fas fa-check" aria-hidden="true"></span>Best match</a><a href="?page=1&sort=D" class="btn btn-default btn-sm nowrap">Date posted</a> </div> </div> <div class="clearfix"></div> </div> <div class="clearfix"></div><div id="ajaxupdateform:result_block" class="results-jobs"> <article id="article-42734403" class="action-buttons"><a href="/jobsearch/jobposting/42734403;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:0:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> carpenter </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Seven North Construction INC.</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Brampton (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $33.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169541</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:0:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734403" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">carpenter - Save to favourites</span> </a></span> </article> <article id="article-42734401" class="action-buttons"><a href="/jobsearch/jobposting/42734401;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:1:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> food service supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">A&W</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Dieppe (NB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.60 to $16.60 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169537</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:1:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734401" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">food service supervisor - Save to favourites</span> </a></span> </article> <article id="article-42734393" class="action-buttons"><a href="/jobsearch/jobposting/42734393;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:2:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> director of education - public administration <span class="job-marker"> <span class="recruiter"> <span class="fa-stack" aria-hidden="true"> <span class="fas fa-circle fa-stack-2x"></span> <span class="fas fa-asterisk fa-stack-1x fa-inverse fa-icon"></span> </span> </span> <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job posting is advertised by a recruitment agency on behalf of the employer.</span> </span> </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Scout Talent Inc</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Chase (BC) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $91,000.00 to $100,100.00 annually (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169536</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:2:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734393" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">director of education - public administration - Save to favourites</span> </a></span> </article> <article id="article-42734334" class="action-buttons"><a href="/jobsearch/jobposting/42734334;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:3:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> logistics coordinator </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Simon Transportation Ltd</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Abbotsford (BC) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $29.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169533</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:3:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734334" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">logistics coordinator - Save to favourites</span> </a></span> </article> <article id="article-42734330" class="action-buttons"><a href="/jobsearch/jobposting/42734330;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:4:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> carwash supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">AutoCleaners Truck & Car Wash</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Red Deer (AB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $35.40 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3158107</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:4:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734330" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">carwash supervisor - Save to favourites</span> </a></span> </article> <article id="article-42734314" class="action-buttons"><a href="/jobsearch/jobposting/42734314;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:5:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> truck driver </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Dryco Building Supplies</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Calgary (AB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $29.50 to $34.00 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169212</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:5:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734314" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">truck driver - Save to favourites</span> </a></span> </article> <article id="article-42734325" class="action-buttons"><a href="/jobsearch/jobposting/42734325;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:6:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> administrative assistant </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Screen Craft Industries Ltd.</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Edmonton (AB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $25.64 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169526</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:6:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734325" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">administrative assistant - Save to favourites</span> </a></span> </article> <article id="article-42734317" class="action-buttons"><a href="/jobsearch/jobposting/42734317;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:7:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> general manager - financial, communications and other business services </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Ileen International Investment Inc.</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Winnipeg (MB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $73.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169532</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:7:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734317" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">general manager - financial, communications and other business services - Save to favourites</span> </a></span> </article> <article id="article-42734309" class="action-buttons"><a href="/jobsearch/jobposting/42734309;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:8:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> food service supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Subway</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Vanier (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $17.20 to $19.00 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169530</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:8:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734309" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">food service supervisor - Save to favourites</span> </a></span> </article> <article id="article-42734300" class="action-buttons"><a href="/jobsearch/jobposting/42734300;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:9:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> long haul truck driver </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Simon Transportation Ltd</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Abbotsford (BC) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $35.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169527</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:9:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734300" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">long haul truck driver - Save to favourites</span> </a></span> </article> <article id="article-42734297" class="action-buttons"><a href="/jobsearch/jobposting/42734297;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:10:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> fish processing labourer </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">BMC Seafoods Limited</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Meteghan (NS) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $17.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169470</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:10:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734297" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">fish processing labourer - Save to favourites</span> </a></span> </article> <article id="article-42734234" class="action-buttons"><a href="/jobsearch/jobposting/42734234;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:11:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> early childhood assistant </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Bumble Bee Academy</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Toronto (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $20.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169425</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:11:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734234" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">early childhood assistant - Save to favourites</span> </a></span> </article> <article id="article-42734290" class="action-buttons"><a href="/jobsearch/jobposting/42734290;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:12:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> apprentice roofer </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Flynn Canada Ltd.</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Lethbridge (AB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $28.85 to $29.50 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169175</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:12:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734290" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">apprentice roofer - Save to favourites</span> </a></span> </article> <article id="article-42734191" class="action-buttons"><a href="/jobsearch/jobposting/42734191;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:13:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> manufacturing coordinator </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Premier Candle Corporation</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Mississauga (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $30.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169523</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:13:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734191" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">manufacturing coordinator - Save to favourites</span> </a></span> </article> <article id="article-42734081" class="action-buttons"><a href="/jobsearch/jobposting/42734081;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:14:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> welder </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Grandview Welding Ltd</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Belfast (PE) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $24.00 to $32.00 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169521</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:14:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734081" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">welder - Save to favourites</span> </a></span> </article> <article id="article-42734104" class="action-buttons"><a href="/jobsearch/jobposting/42734104;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:15:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> pizza cook </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Papa John's (Saint John West)</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Saint John (NB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.30 to $15.75 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169522</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:15:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42734104" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">pizza cook - Save to favourites</span> </a></span> </article> <article id="article-42733918" class="action-buttons"><a href="/jobsearch/jobposting/42733918;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:16:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> server - food and beverage services </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">DENNY'S RESTAURANTS</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Headingley (MB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.30 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169519</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:16:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733918" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">server - food and beverage services - Save to favourites</span> </a></span> </article> <article id="article-42733994" class="action-buttons"><a href="/jobsearch/jobposting/42733994;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:17:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> cashier </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Imperial Liquor</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Edmonton (AB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169520</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:17:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733994" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">cashier - Save to favourites</span> </a></span> </article> <article id="article-42733915" class="action-buttons"><a href="/jobsearch/jobposting/42733915;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:18:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> food service supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Stacked Pancake & Breakfast House</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Orillia (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $17.20 to $20.00 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169518</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:18:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733915" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">food service supervisor - Save to favourites</span> </a></span> </article> <article id="article-42733913" class="action-buttons"><a href="/jobsearch/jobposting/42733913;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:19:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> food service supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Papa John's (Saint John West)</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Saint John (NB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.30 to $15.75 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169517</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:19:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733913" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">food service supervisor - Save to favourites</span> </a></span> </article> <article id="article-42733910" class="action-buttons"><a href="/jobsearch/jobposting/42733910;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:20:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> cook </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Hope Mountain Cafe</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Hope (BC) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $17.62 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169372</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:20:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733910" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">cook - Save to favourites</span> </a></span> </article> <article id="article-42733907" class="action-buttons"><a href="/jobsearch/jobposting/42733907;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:21:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> production welder </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Grandview Welding Ltd</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Belfast (PE) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $16.50 to $24.00 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169516</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:21:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733907" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">production welder - Save to favourites</span> </a></span> </article> <article id="article-42733908" class="action-buttons"><a href="/jobsearch/jobposting/42733908;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:22:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> construction estimator </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">LED GIANT</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Brampton (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $33.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3167823</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:22:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733908" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">construction estimator - Save to favourites</span> </a></span> </article> <article id="article-42733906" class="action-buttons"><a href="/jobsearch/jobposting/42733906;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:23:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="appmethod">Direct Apply</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> administrative assistant </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">CONTIL CANADA LTD</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Brampton (ON) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $25.00 hourly</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169514</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:23:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733906" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">administrative assistant - Save to favourites</span> </a></span> </article> <article id="article-42733905" class="action-buttons"><a href="/jobsearch/jobposting/42733905;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74?source=searchresults" id="ajaxupdateform:j_id_31_3_3p:24:j_id_31_3_3r" class="resultJobItem"> <h3 class="title"> <span class="flag"> <span class="new"> New </span><span class="telework">On site</span><span class="postedonJB"> Posted on Job Bank <span class="description"><span class="fa fa-info-circle" aria-hidden="true"></span>This job was posted directly by the employer on Job Bank.</span> </span> </span> <span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="noctitle"> food service supervisor </span> </h3> <ul class="list-unstyled"> <li class="date">December 02, 2024 </li> <li class="business">Papa John's (Saint John East)</li> <li class="location"><span class="fas fa-map-marker-alt" aria-hidden="true"></span> <span class="wb-inv">Location</span> Saint John (NB) </li> <li class="salary"><span class="fa fa-dollar" aria-hidden="true"></span> Salary: $15.30 to $15.75 hourly (to be negotiated)</li> <li class="source"><span class="job-source job-source-icon-16"><span class="wb-inv">Job Bank</span></span> <span class="wb-inv">Job number:</span> <span class="fa fa-hashtag" aria-hidden="true"></span> 3169513</li> </ul></a><span id="ajaxupdateform:j_id_31_3_3p:24:favouritegroup" class="float job-action"> <a href="/login" data-jobid="42733905" class="favourite saveLoginRedirectURI" onClick="saveLoginRedirectURIListener(this);"> <span class="wb-inv">food service supervisor - Save to favourites</span> </a></span> </article> <div id="morepage" class="col-md-12 mrgn-tp-md noprint"> <button class="btn btn-default btn-md btn-block" type="button" id="moreresultbutton" onclick="showmore();"> <span class="fas fa-chevron-circle-down"></span> Show more results </button> </div> <a href="#header-search" class="btn-gototop"><span class="fas fa-arrow-alt-circle-up"></span> Top of page</a></div> <div class="clearfix"></div> </div> <section class="footer-results-tools mrgn-tp-md"> <div class="col-md-5"><a href="/support/reportproblemform;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" class="btn btn-default btn-sm btn-block"> <span class="fa fa-flag" aria-hidden="true"></span> Report a problem with the search results </a> </div> <div class="col-md-2 col-md-offset-5"><a href="/survey/7;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" class="btn btn-default btn-sm btn-block"> <span class="fa fa-comment" aria-hidden="true"></span> Survey </a> </div> </section> <div class="clearfix"></div> </div> <div id="results-filter-wrapper" class="results-filter-wrapper col-md-3"> <div class="results-filter-content"> <div class="clearfix"></div><a href="/jobsearch/feed/jobSearchRSSfeed;jsessionid=CA2F27F79B1FA9C73FEC4173747D50AD.jobsearch74" class="btn btn-default btn-xs btn-block btn-rss btn-clear"> <span class="fa fa-rss" aria-hidden="true"></span> RSS Job Feed </a> <h2 class="wb-inv">Filters</h2> <div> <fieldset> <style> .form-group .range { background-color: #f8faf9; } #radiusmap { z-index: 1; } </style> <div class="ta-cityprovsuggest input-field" id="location-radiusmap"> <label for="locationstring-radiusmap">Location</label> <input type="text" id="locationstring-radiusmap" class="form-control input-lg locationstring" placeholder="Canada" data-url="" value="" /> <input id="city_id-radiusmap" name="locationparam" value="" type="hidden" /> <span id="ta-citysuggest-suggestioncount" data-name="suggestioncount" role="status" aria-live="polite" class="form-control typeahead-helper-hidden-accessible"></span> <span role="status" id="ta-citysuggest-selected-title" class="form-control ta-jobtitlesuggest-message ta-communitysuggest-selected-title typeahead-helper-hidden-accessible"></span> <div id="cityPostalCodeSpecial" class="tt-menu wb-inv"> <div class="tt-dataset tt-dataset-ta-cityprovsuggest"> <ul> <li><a href="#" data-input="canada"><span class="fab fa-canadian-maple-leaf" aria-hidden="true"></span> All of Canada</a></li> <li><a href="#" data-input="local"><span class="far fa-bullseye-pointer" aria-hidden="true"></span> Current location</a></li> </ul> </div> </div> </div> <input id="locationstring-querystring" value="page=1&sort=M" name="querystring" type="hidden" /> <input id="locationstring-q" value="*:*" type="hidden" /> <input id="locationstring-fq" value="" type="hidden" /> <input id="locationstring-mapzoomlevel" value="1" type="hidden" /> <input id="locationstring-centermap-y" value="57.0" type="hidden" /> <input id="locationstring-centermap-x" value="-95.0" type="hidden" /> <input id="locationstring-radius" value="" type="hidden" /> <input id="locationstring-geometry-y" value="" type="hidden" /> <input id="locationstring-geometry-x" value="" type="hidden" /> <div class="hidden-xs"> <div id="map-help"> <div id="instructions-title"> <a href="#map-help-popup" aria-controls="map-help-popup" class="wb-lbx dialog-help" role="button"><span class="fa fa-question"></span><span class="wb-inv">Help</span></a> </div> <div id="map-help-popup" class="mfp-hide modal-dialog modal-content overlay-def"> <header class="modal-header"> <h3 class="modal-title">Instructions: map navigation</h3> </header> <div class="modal-body"><p>You can filter jobs based on the distance from your selected city. The distance can be set from 10 to 500 kilometres. If you are using a mouse, a smartphone or any other touch device, move the cursor to set your preferred distance and update your search results.</p><p><strong>Keyboard users:</strong> To launch a search, please type a postal code or the name of a city, province or territory in the “Location” field below this map.</p> </div> </div> </div> <div id="radiusmap" aria-label="Interactive Map"><div class="map-label">Interactive map</div> </div> </div> </fieldset> </div> <div class="clearfix"></div> <section aria-live="polite"> <h3>Provinces and territories</h3> <div id="province-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_AB" type="checkbox" class="province " value="AB" data-url="sort=M&fprov=AB" /> <label class="labelControl" for="provitem_AB">Alberta <span class="badge">24124<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_BC" type="checkbox" class="province " value="BC" data-url="sort=M&fprov=BC" /> <label class="labelControl" for="provitem_BC">British Columbia <span class="badge">28811<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_MB" type="checkbox" class="province " value="MB" data-url="sort=M&fprov=MB" /> <label class="labelControl" for="provitem_MB">Manitoba <span class="badge">2897<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_NB" type="checkbox" class="province " value="NB" data-url="sort=M&fprov=NB" /> <label class="labelControl" for="provitem_NB">New Brunswick <span class="badge">1880<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_NL" type="checkbox" class="province " value="NL" data-url="sort=M&fprov=NL" /> <label class="labelControl" for="provitem_NL">Newfoundland and Labrador <span class="badge">1450<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_NT" type="checkbox" class="province " value="NT" data-url="sort=M&fprov=NT" /> <label class="labelControl" for="provitem_NT">Northwest Territories <span class="badge">224<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_NS" type="checkbox" class="province " value="NS" data-url="sort=M&fprov=NS" /> <label class="labelControl" for="provitem_NS">Nova Scotia <span class="badge">2442<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_NU" type="checkbox" class="province " value="NU" data-url="sort=M&fprov=NU" /> <label class="labelControl" for="provitem_NU">Nunavut <span class="badge">42<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_ON" type="checkbox" class="province " value="ON" data-url="sort=M&fprov=ON" /> <label class="labelControl" for="provitem_ON">Ontario <span class="badge">38679<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_PE" type="checkbox" class="province " value="PE" data-url="sort=M&fprov=PE" /> <label class="labelControl" for="provitem_PE">Prince Edward Island <span class="badge">310<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_QC" type="checkbox" class="province " value="QC" data-url="sort=M&fprov=QC" /> <label class="labelControl" for="provitem_QC">Québec <span class="badge">18727<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_SK" type="checkbox" class="province " value="SK" data-url="sort=M&fprov=SK" /> <label class="labelControl" for="provitem_SK">Saskatchewan <span class="badge">3653<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="locationfacetgroup" id="provitem_YT" type="checkbox" class="province " value="YT" data-url="sort=M&fprov=YT" /> <label class="labelControl" for="provitem_YT">Yukon <span class="badge">330<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-calendar-alt" aria-hidden="true"></span> Date posted</h3> <div id="dateposted-type" class="list-group"> <div class="radio"><input value="2" name="dategroup" id="dateitem_0" type="radio" class=" filterSearchControl" data-url="fage=2&sort=M" /> <label class="labelControl" for="dateitem_0">Last 48 hours <span class="badge">2849<span class="wb-inv">jobs found</span></span></label> </div> <div class="radio"><input value="30" name="dategroup" id="dateitem_1" type="radio" class=" filterSearchControl" data-url="fage=30&sort=M" /> <label class="labelControl" for="dateitem_1">Last 30 days <span class="badge">65978<span class="wb-inv">jobs found</span></span></label> </div> <div class="radio"><input value="+30" name="dategroup" id="dateitem_2" type="radio" class=" filterSearchControl" data-url="fage=%2B30&sort=M" /> <label class="labelControl" for="dateitem_2">More than 30 days <span class="badge">58265<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-user-hard-hat" aria-hidden="true"></span>Type of job</h3> <div id="job-types" class="list-group"> <ul class="list-unstyled"> <li class=""> <div class=""> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_0" type="checkbox" class="" value="0" data-url="fjsf=0&sort=M" /> <label class="labelControl" for="job-types_0">Exclude student jobs <span class="badge">124078 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> <li class=""> <div class=""> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_1" type="checkbox" class="" value="1" data-url="fjsf=1&sort=M" /> <label class="labelControl" for="job-types_1">Student jobs <span class="badge">165 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> <li class=""> <div class=""> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_2" type="checkbox" class="" value="0" data-url="sort=M&fjap=0" /> <label class="labelControl" for="job-types_2">Exclude apprentice jobs <span class="badge">124167 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> <li class=""> <div class=""> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_3" type="checkbox" class="" value="1" data-url="sort=M&fjap=1" /> <label class="labelControl" for="job-types_3">Apprentice jobs <span class="badge">76 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> <li> <div class="form-control-container"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_intern" type="checkbox" class="" value="100006" data-url="page=1&sort=M&fsct=100006" /> <label class="labelControl" for="job-types_intern">Internships <span class="badge">10 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> <li> <div class="form-control-container"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobtype" id="job-types_green" type="checkbox" class="" value="100005" data-url="page=1&sort=M&fsct=100005" /> <label class="labelControl" for="job-types_green">Green jobs <span class="badge">2363 <span class="wb-inv">jobs found</span></span></label> </div> </div> </li> </ul> </div> </section> <section> <h3 class="legend"><span class="fas fa-alarm-clock" aria-hidden="true"></span> Hours of work</h3> <div id="hours-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);return false;" name="typeworkgroup" id="typeworkitem_0" type="checkbox" class="" value="F" data-url="fper=F&sort=M" /> <label class="labelControl" for="typeworkitem_0">Full time <span class="badge">105732<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);return false;" name="typeworkgroup" id="typeworkitem_1" type="checkbox" class="" value="P" data-url="fper=L&fper=P&sort=M" /> <label class="labelControl" for="typeworkitem_1">Part time <span class="badge">6108<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-comments-alt" aria-hidden="true"></span> Language at work</h3> <div id="language-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="langgroup" id="langitem_0" type="checkbox" class="" value="E" data-url="flg=E&sort=M" /> <label class="labelControl" for="langitem_0">English <span class="badge">98641<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="langgroup" id="langitem_1" type="checkbox" class="" value="F" data-url="flg=F&sort=M" /> <label class="labelControl" for="langitem_1">French <span class="badge">19055<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="langgroup" id="langitem_2" type="checkbox" class="" value="B" data-url="flg=B&sort=M" /> <label class="labelControl" for="langitem_2">English and French <span class="badge">662<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-dollar-sign" aria-hidden="true"></span> Salary</h3> <div class="toggle-group form-group list-group"> <div class="radio"> <input id="wage-type-annual" type="radio" name="wage-type" checked="checked" value="1" /> <label class="labelControlIA" for="wage-type-annual">Annual</label> </div> <div class="radio"> <input id="wage-type-hourly" type="radio" name="wage-type" check="" value="2" /> <label class="labelControlIA" for="wage-type-hourly">Hourly</label> </div> <div id="wageannual-level" class="wage-type"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagegroup" id="wageitem_0" type="checkbox" class="" value="E" data-url="fwcl=E&sort=M" /> <label class="labelControl" for="wageitem_0">$20,000 to $39,999 <span class="badge">37000<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagegroup" id="wageitem_1" type="checkbox" class="" value="D" data-url="fwcl=D&sort=M" /> <label class="labelControl" for="wageitem_1">$40,000 to $59,999 <span class="badge">37674<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagegroup" id="wageitem_2" type="checkbox" class="" value="C" data-url="fwcl=C&sort=M" /> <label class="labelControl" for="wageitem_2">$60,000 to $79,999 <span class="badge">15351<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagegroup" id="wageitem_3" type="checkbox" class="" value="B" data-url="fwcl=B&sort=M" /> <label class="labelControl" for="wageitem_3">$80,000 to $99,999 <span class="badge">3397<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagegroup" id="wageitem_4" type="checkbox" class="" value="A" data-url="fwcl=A&sort=M" /> <label class="labelControl" for="wageitem_4">$100,000 + <span class="badge">2667<span class="wb-inv">jobs found</span></span></label> </div> </div> <div id="wagehourly-level" class="wage-type"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagehourlygroup" id="wagehourlyitem_0" type="checkbox" class="" value="E" data-url="fwhcl=E&sort=M" /> <label class="labelControl" for="wagehourlyitem_0">Minimum to $19.99 <span class="badge">29449<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagehourlygroup" id="wagehourlyitem_1" type="checkbox" class="" value="D" data-url="fwhcl=D&sort=M" /> <label class="labelControl" for="wagehourlyitem_1">$20.00 to $29.99 <span class="badge">42249<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagehourlygroup" id="wagehourlyitem_2" type="checkbox" class="" value="C" data-url="fwhcl=C&sort=M" /> <label class="labelControl" for="wagehourlyitem_2">$30.00 to $39.99 <span class="badge">18376<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagehourlygroup" id="wagehourlyitem_3" type="checkbox" class="" value="B" data-url="fwhcl=B&sort=M" /> <label class="labelControl" for="wagehourlyitem_3">$40.00 to $49.99 <span class="badge">3800<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="wagehourlygroup" id="wagehourlyitem_4" type="checkbox" class="" value="A" data-url="fwhcl=A&sort=M" /> <label class="labelControl" for="wagehourlyitem_4">$50.00 + <span class="badge">3388<span class="wb-inv">jobs found</span></span></label> </div> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-user-clock" aria-hidden="true"></span> Period of employment</h3> <div id="periodemployment-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="worktermgroup" id="worktermitem_0" type="checkbox" class="" value="P" data-url="sort=M&fter=P" /> <label class="labelControl" for="worktermitem_0">Permanent <span class="badge">99583<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="worktermgroup" id="worktermitem_1" type="checkbox" class="" value="T" data-url="sort=M&fter=T" /> <label class="labelControl" for="worktermitem_1">Term or contract <span class="badge">4462<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="worktermgroup" id="worktermitem_2" type="checkbox" class="" value="S" data-url="sort=M&fter=S" /> <label class="labelControl" for="worktermitem_2">Seasonal <span class="badge">1199<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="worktermgroup" id="worktermitem_3" type="checkbox" class="" value="C" data-url="sort=M&fter=C" /> <label class="labelControl" for="worktermitem_3">Casual <span class="badge">1518<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-users-class" aria-hidden="true"></span> Employment groups</h3> <div id="employmentgroups-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_6" type="checkbox" class="" value="1" data-url="fjab=1&sort=M" /> <label class="labelControl" for="emplgroupitem_6">Indigenous people <span class="badge">10640<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_7" type="checkbox" class="" value="1" data-url="sort=M&fjdp=1" /> <label class="labelControl" for="emplgroupitem_7">Persons with disabilities <span class="badge">5647<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_8" type="checkbox" class="" value="1" data-url="fjnc=1&sort=M" /> <label class="labelControl" for="emplgroupitem_8">Newcomers <span class="badge">12437<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_9" type="checkbox" class="" value="1" data-url="sort=M&fjsr=1" /> <label class="labelControl" for="emplgroupitem_9">Mature workers <span class="badge">5727<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_10" type="checkbox" class="" value="1" data-url="sort=M&fjvt=1" /> <label class="labelControl" for="emplgroupitem_10">Veterans <span class="badge">4999<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_11" type="checkbox" class="" value="1" data-url="fjyt=1&sort=M" /> <label class="labelControl" for="emplgroupitem_11">Youth <span class="badge">9433<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_12" type="checkbox" class="" value="1" data-url="fjvm=1&sort=M" /> <label class="labelControl" for="emplgroupitem_12">Visible minority <span class="badge">7629<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_13" type="checkbox" class="" value="1" data-url="page=1&sort=M&fskl=101010&fskl=101020" /> <label class="labelControl" for="emplgroupitem_13">Temporary foreign workers <span class="badge">9988<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-building" aria-hidden="true"></span> Job source</h3> <div id="jobsource-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobfiltergroup" id="jobfilteritem_0" type="checkbox" class="" value="16" data-url="sort=M&fsrc=16" /> <label class="labelControl" for="jobfilteritem_0">Posted on Job Bank <span class="badge">82199<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobfiltergroup" id="jobfilteritem_1" type="checkbox" class="" value="¬1" data-url="fet=%C2%AC1&sort=M" /> <label class="labelControl" for="jobfilteritem_1">Exclude placement agencies jobs <span class="badge">-1786<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobfiltergroup" id="jobfilteritem_2" type="checkbox" class="" value="5" data-url="fet=5&sort=M" /> <label class="labelControl" for="jobfilteritem_2">Municipal governments <span class="badge">371<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobfiltergroup" id="jobfilteritem_3" type="checkbox" class="" value="3" data-url="fet=3&sort=M" /> <label class="labelControl" for="jobfilteritem_3">Federal government <span class="badge">212<span class="wb-inv">jobs found</span></span></label> </div> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="jobfiltergroup" id="jobfilteritem_4" type="checkbox" class="" value="4" data-url="fet=4&sort=M" /> <label class="labelControl" for="jobfilteritem_4">Provincial and territorial governments <span class="badge">137<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <section> <h3 class="legend"><span class="fas fa-globe" aria-hidden="true"></span> Intended applicants</h3> <div id="applicantgroup-type" class="list-group"> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_4" type="checkbox" class="" value="1" data-url="fcan=1&sort=M" /> <label class="labelControl" for="emplgroupitem_4">Canadians and authorized workers <span class="badge">48551<span class="wb-inv">jobs found</span></span></label> </div><input id="ajaxupdateform:j_id_31_3_d3:5:j_id_31_3_d9" name="ajaxupdateform:j_id_31_3_d3:5:j_id_31_3_d9" type="submit" class="removeInternationalFilter hide" /> <div class="checkbox"><input onclick="updateResultWithUrl(this);" name="emplgroup" id="emplgroupitem_5" type="checkbox" class="" value="1" data-url="sort=M&fglo=1" /> <label class="labelControl" for="emplgroupitem_5">Canadians and international candidates <span class="badge">33648<span class="wb-inv">jobs found</span></span></label> </div> </div> </section> <a id="advanced-search-button-filters" class="btn-block btn-light mrgn-tp-md" href="/jobsearch/advancedsearch?page=1&sort=M">View more filters</a> </div> </div> <div class="filter-button-overlay"> <button class="btn btn-default btn-sm btn-block command-result-filter-overlay" type="button"> <span class="fal fa-sliders-h" aria-hidden="true"></span>Clickable heading, select to collapse filters </button> </div> </section><input type="hidden" name="ajaxupdateform_SUBMIT" value="1" /><input type="hidden" name="jakarta.faces.ViewState" id="j_id__v_0:jakarta.faces.ViewState:4" value="stateless" autocomplete="off" /></form> <section id="education-training-help-popup" class="mfp-hide modal-dialog modal-content overlay-def"> <header class="modal-header"> <h3 class="modal-title">Education or training</h3> </header> <div class="modal-body"> <p>This job search filter does not show job postings based on the education level required by the employer. It rather indicates the type of training <strong>usually</strong> required for these occupations according to the <a href="http://noc.esdc.gc.ca/English/home.aspx">National Occupational Classification</a>.</p> </div> <div class="clearfix"></div> </section> <section id="distance-radius-help-popup" class="mfp-hide modal-dialog modal-content overlay-def"> <header class="modal-header"> <h3 class="modal-title">Distance radius</h3> </header> <div class="modal-body"> <p>You can filter jobs based on the distance from your selected city. The distance can be set from 10 to 500 kilometres. If you are using a mouse, a smartphone or any other touch device, move the cursor to set your preferred distance and update your search results. Keyboard users: When the map is in focus, use the arrow keys to pan the map and the plus and minus keys to zoom. The arrow keys will not pan the map when zoomed to the map extent.</p> </div> <div class="clearfix"></div> </section> <span id="liveRegionFilterCity" aria-live="polite" class="sr-only"></span> <div class="pagedetails"> <div class="row"> <div class="col-sm-6 col-lg-4 mrgn-tp-sm hidden"> <a href="https://www.canada.ca/en/report-problem.html" class="btn btn-default btn-block">Report a problem or mistake on this page</a> </div> <div class="col-sm-3 mrgn-tp-sm pull-right hidden"> <div class="wb-share" data-wb-share="{"lnkClass": "btn btn-default btn-block"}"></div> </div> </div> <dl id="wb-dtmd"> <dt>Date modified: </dt> <dd><time property="dateModified">2024-11-19</time></dd> </dl> </div> </main> <footer id="wb-info" class=""> <div class="gc-contextual"> <div class="container"> <nav> <h2 class="wb-inv">Related links</h2> <ul class="list-col-xs-1 list-col-sm-2 list-col-md-3"> <li><a href="/helpsupport">Job Bank Support</a></li> <li><a href="/aboutus">About us</a></li> <li><a href="https://www.jobbank.gc.ca/intro">Introduction to Job Bank</a></li> <li><a href="https://www.jobbank.gc.ca/network">Our network</a></li> <li> <a href="/termsofuseseeker">Terms of use - Job seekers</a> </li> <li> <a href="/termsofuseemployer">Terms of use - Employers</a> </li> </ul> </nav> </div> </div> <div class="gc-sub-footer"> <div class="container d-flex align-items-center"> <nav aria-labelledby="aboutWebApp"> <h3 class="wb-inv" id="aboutWebApp">Government of Canada Corporate</h3> <ul> <li><a href="https://www.canada.ca/en/transparency/terms.html" target="_blank" rel="noopener">Terms and conditions<span class="wb-inv"> This link will open in a new window</span></a></li> <li><a href="https://www.canada.ca/en/transparency/privacy.html" target="_blank" rel="noopener">Privacy<span class="wb-inv"> This link will open in a new window</span></a></li> </ul> </nav> <div class="col-xs-6 visible-sm visible-xs tofpg"> <a href="#wb-cont">Top of Page <span class="glyphicon glyphicon-chevron-up"></span></a> </div> <div class="wtrmrk align-self-end"> <img src="/themes-sat/assets/wmms-blk.svg" alt="Symbol of the Government of Canada" /> <meta property="areaServed" typeOf="Country" content="Canada" /> <link property="logo" href="/themes-sat/assets/wmms-blk.svg" /> </div> </div> </div> </footer> <script src="/themes-sat/js/jquery/2.2.4/jquery.min.js"></script> <script src="/themes-sat/js/wet-boew.min.js"></script> <script src="/themes-sat/js/theme.min.js"></script> <script src="/themes-jb/js/settings/site-settings-gtie8.js"></script> <script src="/themes-sat/js/cdtscustom.js"></script> <script src="/themes-jb/js/third-party/jquery.timepicker.min.js"></script> <script src="/themes-jb/js/third-party/jquery.capslockstate.js"></script> <script src="/themes-jb/js/third-party/typeahead.bundle.min.js"></script> <script type="text/javascript"> //<![CDATA[ //Dropdown function dropdownToggle = function() { $('button.dropdown-toggle, a.signInUserAccount').removeClass('disabled'); $(document).on('click', 'button.dropdown-toggle', function(e) { $('button.dropdown-toggle').not(this).each( function(e) { $(this).parent('.btn-group').removeClass('open'); }); if ($(this).parent().is('.btn-group')) { //console.log('OPEN dropdown'); $(this).attr('aria-expanded', function (i, attr) { return attr == 'true' ? 'false' : 'true' }); $(this).parent('.btn-group').toggleClass('open'); if ($(this).hasClass('btn-func-filter')) { if ($(this).parent('.filter-group').hasClass('open')) { $('.dropdown-menu, .dropdown-group').parent('.btn-group').find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); $(this).find('.fa-icon').toggleClass('fa-chevron-down fa-chevron-up'); } else { $(this).find('.fa-icon').toggleClass('fa-chevron-up fa-chevron-down'); $('.dropdown-menu, .dropdown-group').parent('.btn-group').find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } } return false; }); } //Initiate Dropdown once document has been loaded dropdownToggle(); //Remove Dropdown function removeDropdownToggle = function(e) { $(document).on('click', function(e) { var dropdownToggle = $('.dropdown-menu, .dropdown-group').parent('.btn-group, .filter-group'); /* if (!$(this).parent().is('.btn-group')) { console.log('click outside'); $('button.dropdown-toggle').attr('aria-expanded','false'); $(dropdownToggle).removeClass('open'); if ($(dropdownToggle)) { $(dropdownToggle).find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } */ var $trigger = $(".dropdown-toggle, .dropdown-menu"); if($trigger !== e.target && !$trigger.has(e.target).length){ //console.log('REMOVE dropdown outside'); $(dropdownToggle).removeClass('open'); if ($(dropdownToggle)) { $(dropdownToggle).find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } }); escRemoveDropdownToggle(); } hideDropdownToggle = function() { $('ul.dropdown-menu li a').on('focus focusin', function() { var $signonbutton = $(this).parents('li.btn-group'); $signonbutton.addClass("open"); $signonbutton.find('button.dropdown-toggle').attr('aria-expanded','true'); }).on('focusout', function() { var $signonbutton = $(this).parents('li.btn-group'); var $parent = $(this).parents('ul.dropdown-menu'); setTimeout(function() { if (!$.contains($parent[0], document.activeElement)) { $signonbutton.removeClass("open"); $signonbutton.find('button.dropdown-toggle').attr('aria-expanded','false'); } }, 0); //console.log('HIDE dropdown'); }); escRemoveDropdownToggle(); } escRemoveDropdownToggle = function(e) { $(document).on('keydown', 'button.dropdown-toggle', function(e) { // Escape key if(event.which == 27) { //console.log('ESCAPE KEY from main button'); var dropdownToggle = $('.dropdown-menu, .dropdown-group').parent('.btn-group, .filter-group'); /* if (!$(this).parent().is('.btn-group')) { console.log('click outside'); $('button.dropdown-toggle').attr('aria-expanded','false'); $(dropdownToggle).removeClass('open'); if ($(dropdownToggle)) { $(dropdownToggle).find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } */ var $trigger = $(".dropdown-toggle, .dropdown-menu"); if($trigger !== e.target && !$trigger.has(e.target).length){ //console.log('REMOVE dropdown outside'); $(dropdownToggle).removeClass('open'); if ($(dropdownToggle)) { $(dropdownToggle).find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); } } event.preventDefault(); } }); $(document).on('keydown', '.dropdown-menu input, .dropdown-menu h3, .dropdown-menu .list-group, .dropdown-menu button, .dropdown-menu a', function(e) { // Escape key if(event.which == 27) { var dropdownToggle = $('.dropdown-menu, .dropdown-group').parent('.btn-group, .filter-group'); var $trigger = $("input[type=checkbox]"); if($trigger !== e.target && !$trigger.has(e.target).length){ $(dropdownToggle).removeClass('open'); if ($(dropdownToggle)) { $(dropdownToggle).find('.btn-func-filter').children('.fa-icon').removeClass('fa-chevron-up').addClass('fa-chevron-down'); $(this).parents('.dropdown-menu').prev('.dropdown-toggle').focus(); } } event.preventDefault(); } }); } //Initiate Remove Dropdown once document has been loaded removeDropdownToggle(); hideDropdownToggle(); $(document).ready(function(){ //$('.jbservices').removeClass('disabled'); //Form required field input label indicators and disclaimer formRequired = function() { var formRequiredAsteriskClass = 'formRequiredAsterisk'; var formRequiredAsteriskGroup = $("form."+formRequiredAsteriskClass); var asteriskSymbol = '<span class="symbol-required">*</span>' var asteriskDisclaimer = '<div class="col-md-12 row"><p class="tip-required"><span class="fa fa-info-circle fa-lg"></span> Any fields marked with an asterisk (<span>*</span>) are required.</p></div><div class="clearfix"></div>' var formRequiredWordClass = 'formRequiredWord'; var formRequiredWordGroup = $("form."+formRequiredWordClass); var requiredWord = "<span class='req'>(required)</span>"; //Insert asterisk symbol if ($(formRequiredAsteriskGroup)) { $(formRequiredAsteriskGroup).find('label.required').prepend(asteriskSymbol); $(formRequiredAsteriskGroup).find('legend.required').prepend(asteriskSymbol); $(formRequiredAsteriskGroup).find('h1.required').prepend(asteriskSymbol); $(formRequiredAsteriskGroup).find('h2.required').prepend(asteriskSymbol); $(formRequiredAsteriskGroup).find('h3.required').prepend(asteriskSymbol); //Insert asterisk disclaimer if ($(formRequiredAsteriskGroup).find('.module-stepbar').length !== 0) { $(formRequiredAsteriskGroup).find('.module-stepbar').after(asteriskDisclaimer); } else { $(formRequiredAsteriskGroup).prepend(asteriskDisclaimer); } } //Insert word required if ($(formRequiredWordGroup)) { $(formRequiredWordGroup).find('label.required').append(requiredWord); $(formRequiredWordGroup).find('legend.required').append(requiredWord); $(formRequiredWordGroup).find('h1.required').append(requiredWord); $(formRequiredWordGroup).find('h2.required').append(requiredWord); $(formRequiredWordGroup).find('h3.required').append(requiredWord); } } formRequired(); }); $(document).on("wb-ready.wb", function(event) { //Initiate script after WET Plugins are done loading... var formErrorValidation = false; var formErrorValidationGuest = true; var runFormErrorValidation = false if (localStorage.getItem('signInPopUp') === 'true') { var signInPopUp = true; } //console.log('Error?'+formErrorValidation+' Dashboard page? '+runFormErrorValidation); //console.log('Alert: '+formErrorValidationGuest); if (signInPopUp && formErrorValidation && !runFormErrorValidation && formErrorValidationGuest || signInPopUp && formErrorValidation && runFormErrorValidation && formErrorValidationGuest) { //console.log('Open Standard/Plus login popup!'); openSignInUserAccount(); } else if (!formErrorValidationGuest) { //console.log('Open Guest login popup!'); openSignInGuestUserAccount(); } else if (!formErrorValidation) { //console.log('No error validation!'); localStorage.removeItem('signInPopUp'); } else { //console.log('Not opened login popup'); } function openSignInUserAccount() { //console.log('opensigninuseraccoun'); $.magnificPopup.open({ prependTo: '#loginForm', items: [ { src: '#user-signin', type: 'inline', } ], callbacks: { open: function() { }, close: function() { //console.log('Close sign in popup!'); localStorage.removeItem('signInPopUp'); } } }); if (signInPopUp && !formErrorValidation) { localStorage.removeItem('signInPopUp'); } } function openSignInGuestUserAccount() { $.magnificPopup.open({ prependTo: '#loginModalFormViewJobAlerts', items: [ { src: '#guestmode-signin-view', type: 'inline', } ], }); } //$(document).on("wb-ready.wb", function() { $(document).on('click', '.signInRegisterJobAlerts', function(e) { //Event for actual link action e.preventDefault(); //Run WET plugin $.magnificPopup.open({ prependTo: '#loginModalFormRegisterJobAlerts', //modal: true, items: [ { src: '#guestmode-signin-register', type: 'inline', } ], //closeBtnInside: true }); }); $(document).on('click', '.signInViewJobAlerts', function(e) { //Event for actual link action e.preventDefault(); //Run WET plugin $.magnificPopup.open({ prependTo: '#loginModalFormViewJobAlerts', //modal: true, items: [ { src: '#guestmode-signin-view', type: 'inline', } ], //closeBtnInside: true }); }); $(document).on('click', '.signInUserAccount', function(e) { var title = $(this).find('.title').text(); //console.log(title); $('#loginForm').find('.modal-title').text(title); //Event for actual link action e.preventDefault(); //Run WET plugin $.magnificPopup.open({ prependTo: '#loginForm', //modal: true, items: [ { src: '#user-signin', type: 'inline', } ], callbacks: { open: function() { }, close: function() { //console.log('Close sign in popup!'); localStorage.removeItem('signInPopUp'); } } //closeBtnInside: true }); $('#submitUserSignInPopUp').click( function() { //console.log('signInPopUp'); localStorage.setItem('signInPopUp', 'true'); }); }); $('#submitUserSignIn').click( function() { //console.log('signIn normal'); localStorage.removeItem('signInPopUp'); }); }); //]]> </script> <script src="/themes-jb/js/settings/site-settings-all.js"></script> <script type="text/javascript"> //<![CDATA[ taCityprovSuggestFunctionsV2 = function(element) { String.prototype.format = function() { var args = arguments; return this.replace(/\{(\d+)\}/g, function() { return args[arguments[1]]; }); }; if (!String.prototype.startsWith) { String.prototype.startsWith = function(searchString, position) { position = position || 0; return this.indexOf(searchString, position) === position; }; } var inputObject = $(element).find("input:text:first"); var inputlang = document.documentElement.lang; if (inputObject.attr('lang') !== undefined) inputlang = inputObject.attr('lang'); if (inputlang === undefined) inputlang = "en"; var selectedObjectText; var messageObject = $(element).find("[data-name='suggestioncount']"); var errorLabelMessageObject = $(element).find("label").find(".message"); var idObject = $(element).find("[name$='locationparam']"); var specialObject = $(element).find("[name$='cityPostalCodeSpecial']"); var buttonObject = $(element).find("input:submit, button"); if (buttonObject.length == 0) { buttonObject = $(element).find("button:submit"); } if (idObject.val() == '' ) { clearinput(); }; messageObject.text("Type to get suggestions"); function displaykey(item) { if (item.docid.startsWith('PR')) { return item.name; } if (item.docid.startsWith('P')) { return item.name+", "+item.prov_cd+" "+item.postalcode; } return item.name+", "+item.prov_cd; } function displayvalue(item) { if (item.docid.startsWith('PR')) { return item.prov_name; } if (item.docid.startsWith('P')) { return item.postalcode; } return item.name+", "+item.prov_cd; } function displayoption(value,item) { return value; } /* if the button is inside the ta-cityprovsuggest block, it will be controlled by this script to avoid that behaviour, move the button onside the block */ function clearinput() { idObject.val(""); // DO NOT COMMENT OUT THIS LINE buttonObject.attr('disabled', 'disabled'); selectedObjectText = ""; inputObject.trigger("unselect",["Custom","Event"]); } function noValidSelection() { errorLabelMessageObject.show().addClass("ui-message-error").attr({"role":"status","aria-live":"polite"}).text("No suggestions, make another selection"); } function validSelection() { errorLabelMessageObject.text("").hide(); } function populateinput(item) { if (item.docid.startsWith('PR')) { idObject.val(item.prov_cd); } else if (item.docid.startsWith('P')) { idObject.val(item.postalcode); } else { idObject.val(item.city_id); } validSelection(); // DO NOT COMMENT OUT THIS LINE buttonObject.removeAttr('disabled', 'disabled'); selectedObjectText = displayvalue(item); inputObject.trigger("select",["Custom","Event"]); } var bloodhound = new Bloodhound({ datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); }, queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url:"/core/ta-cityprovsuggest_"+inputlang+"/select?q=%QUERY&fq=NOT postalcode_cnt:0&wt=json&rows=25", wildcard: "%QUERY", filter: function(response) { return $.map(response.response.docs, function(doc){ return { docid:doc.docid, name:doc.name, city_id:doc.city_id, prov_cd:doc.province_cd, prov_name:doc.province_name, postalcode:doc.postalcode}; }); } }, limit: 25 }); bloodhound.initialize(); inputObject.typeahead( { minLength: 2 }, { name: "ta-cityprovsuggest", displayKey: function(item) { if (item.docid.startsWith('PR')) { return item.prov_name; } if (item.docid.startsWith('P')) { return item.postalcode; } return item.name+", "+item.prov_cd; //return displaykey(item) }, limit: 20, templates: { suggestion: function(data) { var inputtext = inputObject.val(); inputtext = inputtext.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\wéèêë'-]+/g, "|").replace(/[eéèêë]+/g, "[eéèêë]"); pattern = new RegExp(inputtext,'gi'); highlighted = displaykey(data).replace(pattern,function(matched){ return '<span class="tt-highlight">'+matched+'</span>'; }); return '<p>'+displayoption(highlighted,data)+'</p>'; }, notFound: function(data) { messageObject.text("No suggestions, make another selection"); noValidSelection(); return '<p class="tt-suggestion tt-selectable">'+displayoption("<span class='tt-highlight'>No suggestions, make another selection</span>")+'</p>'; }, footer: function(data) { messageObject.text("Suggestions are available, use up and down arrow keys to navigate"); } }, source: bloodhound.ttAdapter() }).on('typeahead:open', function(evt) { messageObject.text("Type to get suggestions"); }).on('typeahead:select', function(evt, item) { populateinput(item); messageObject.text( "You have selected, ‘{0}’".format( displaykey(item) ) ); }).on('typeahead:change', function(evt, item) { t1 = inputObject.val(); if (t1!=selectedObjectText) { messageObject.text(""); clearinput(); } }).on('typeahead:autocomplete', function(evt, item) { populateinput(item); messageObject.text( "You have selected, ‘{0}’".format( displaykey(item) ) ); }).on('typeahead:render', function(evt, item,c,d) { if (typeof(item) != 'undefined') { messageObject.text("Suggestions are available, use up and down arrow keys to navigate"); } }).on('typeahead:close', function(evt) { var inputvalue = inputObject.typeahead('val'); if (bloodhound.remote.transport._cache.list.head) { var firstdoc = bloodhound.remote.transport._cache.list.head.val.response.docs[0]; } if ( typeof(selectedObjectText) != 'undefined' && selectedObjectText.length > 0 ) { messageObject.text( "You have selected, ‘{0}’".format(selectedObjectText) ); } else if ( typeof(inputvalue) != 'undefined' && inputvalue.length > 0 && typeof(firstdoc) != 'undefined') { // no selection then select the first docs var firstitem = { docid:firstdoc.docid, name:firstdoc.name, city_id:firstdoc.city_id, prov_cd:firstdoc.province_cd, prov_name:firstdoc.province_name, postalcode:firstdoc.postalcode }; //inputObject.val(displaykey(firstitem)); if (firstitem.docid.startsWith('PR')) { inputObject.typeahead('val',firstitem.prov_name); inputObject.val(firstitem.prov_name); } else if (firstitem.docid.startsWith('P')) { inputObject.typeahead('val',firstitem.postalcode); inputObject.val(firstitem.postalcode); } else { inputObject.typeahead('val',firstitem.name+", "+firstitem.prov_cd); inputObject.val(firstitem.name+", "+firstitem.prov_cd); } //inputObject.typeahead('val',firstitem.name); populateinput(firstitem); messageObject.text( "You have selected, ‘{0}’".format(displaykey(firstitem)) ); } else { messageObject.text(""); validSelection(); } }); // special object action if ( typeof specialObject !== 'undefined' ) { // When the user type, we hide div inputObject.on("keyup focus", function () { var search = this.value; if (search) { specialObject.addClass('wb-inv'); } else { specialObject.removeClass('wb-inv'); } }); inputObject.on('blur', function() { specialObject.addClass('wb-inv'); }); specialObject.on("focus blur", "a", function() { //window.clearTimeout(timeoutHandler); specialObject.removeClass("wb-inv"); }); specialObject.on("click", "a", function() { //console.log('#cityPostalCodeSpecial option - Activated'); var text = $(this).attr("data-input"); //var inputObject = $(this).parent(".ta-cityprovsuggest").find("input:text:first"); switch(text) { case "canada": updateLocationParam(); updateResultWithUrl($(this)); break; case "local": if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) { var latlng = pos.coords; // ajax call to solr for name of city inputObject.addClass('working'); // pt: '45.558958,-75.628912' // pt: latlng.lat+','+latlng.lng, $.ajax({ url: '/core/ta-postalcode/select', dataType: 'JSONP', async: false, data: { q: '*:*', wt: 'json', fl: '*,_dist_:geodist()', sfield:'geolocation', pt: latlng.latitude+','+latlng.longitude, sort: 'geodist() asc', rows:'1' }, jsonp: 'json.wrf', success: function(data,status) { $(this).data("url",$(this).data("url")+"&pst="+data.response.docs[0].postalcode); updateResultWithUrl($(this)); }, complete: function(jqXHR,status) { inputObject.removeClass('working'); } }); }); } else { inputObject.val(" "); $("#messageblock").html('<div class="alert alert-info"> We can’t identify your current location</div>'); } break; case "profile": updateResultWithUrl($(this)); break; } return false; }); } }; function initCityprovSuggestObject() { $('div.ta-cityprovsuggest').each( function(i,obj) { new taCityprovSuggestFunctionsV2(obj); }); } if ($(".modify-job-wb-tabs").length) { $(document).on("wb-ready.wb", initCityprovSuggestObject); } else { $(document).ready(initCityprovSuggestObject); } //]]> </script> <script type="text/javascript"> //<![CDATA[ /* * example code <div class="ta-jobtitlesuggest"> <input type="text" /> <h:inputHidden id="id_en" name="id_en" /> <h:inputHidden id="id_fr" name="id_fr" /> <h:inputHidden id="noc_code" name="noc_code" /> <span id="suggestioncount" data-name="suggestioncount" role="status" aria-live="polite" class="typeahead-helper-hidden-accessible"></span> <span class="input-group-btn"> <input id="searchSubmit" class="btn btn-primary pull-right" value="Search" type="submit" name="action">Search</button> </span> </div> */ taJobtitleSuggestFunctionsV2 = function(element) { String.prototype.format = function() { var args = arguments; return this.replace(/\{(\d+)\}/g, function() { return args[arguments[1]]; }); }; var inputObject = $(element).find("input:text:first").not(':hidden'); var inputlang = document.documentElement.lang; if (inputObject.attr('lang') !== undefined) inputlang = inputObject.attr('lang'); if (inputlang === undefined) inputlang = "en"; var selectedObjectText; var messageObject = $(element).find("[data-name='suggestioncount']"); var errorLabelMessageObject = $(element).find("label").find(".message"); var idenObject = $(element).find("[name$='id_en']"); var idfrObject = $(element).find("[name$='id_fr']"); var titleidObject = $(element).find("[name$='\\:id']"); var titleObject = $(element).find("[name$='term']"); var titleenObject = $(element).find("[name$='title_en']"); var titlefrObject = $(element).find("[name$='title_fr']"); var nocCodeObject = $(element).find("[name$='noc_code']"); var filterSkilltypeObject = $(element).find("[name$='filterskilltype']"); var buttonObject = $(element).find("input:submit, button").not(':hidden'); if (buttonObject.length == 0) { buttonObject = $(element).find("button:submit").not(':hidden'); } //clearinputNOCTitle(); if (titleidObject.val() == '' ) { clearinputNOCTitle(); }; messageObject.text("Type to get suggestions"); function displaykeyNOCTitle(item) { return item.title+" ("+item.noc21_code+")"; } function displayoptionNOCTitle(value,item) { return value; } function clearinputNOCTitle() { idenObject.val(""); idfrObject.val(""); titleidObject.val(""); titleenObject.val(""); titlefrObject.val(""); titleObject.val(""); nocCodeObject.val(""); buttonObject.attr('disabled', 'disabled'); selectedObjectText = ""; // trigger event change nocCodeObject.change(); inputObject.trigger("unselect",["Custom","Event"]); } function noValidSelection() { errorLabelMessageObject.show().addClass("ui-message-error").attr({"role":"status","aria-live":"polite"}).text("No suggestions, make another selection"); } function validSelection() { errorLabelMessageObject.text("").hide(); } function populateinputNOCTitle(item) { idenObject.val(item.id_en); idfrObject.val(item.id_fr); titleidObject.val(item.id); titleenObject.val(item.title_en); titlefrObject.val(item.title_fr); if (inputlang=="en") { titleObject.val(item.title_en); } else { titleObject.val(item.title_fr); } validSelection(); nocCodeObject.val(item.noc21_code); buttonObject.removeAttr('disabled'); selectedObjectText = displaykeyNOCTitle(item); // trigger event change nocCodeObject.change(); inputObject.trigger("select",["Custom","Event"]); } $(element).on('keypress', function(evt, item) { var t1 = $(inputObject).val(); if (evt.which == 13 ) { if (t1!=selectedObjectText) { $(buttonObject).prop("disabled", true); messageObject.text(""); clearinputNOCTitle(); return false; } else { $(buttonObject).prop("disabled", false); $(buttonObject).click(); return true; } return false; } $(buttonObject).prop("disabled", true); }); //- json transform on solr var bloodhoundNOCTitle = new Bloodhound({ datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.fos_name); }, queryTokenizer: Bloodhound.tokenizers.whitespace, remote: { url:"/core/ta-jobtitle_"+inputlang+"/select?q=%QUERY&wt=json&rows=25", wildcard: "%QUERY", replace: function (url, query) { var q = encodeURIComponent(inputObject.val()); q2 = url.replace("%QUERY",q); if ( typeof(filterSkilltypeObject) != 'undefined' && filterSkilltypeObject.val() !== "" && filterSkilltypeObject.val() !== undefined) { q2 += "&fq="+filterSkilltypeObject.val(); } else { q2 += "&fq=noc_job_title_type_id:1"; } return q2; } , filter: function(response) { return $.map(response.response.docs, function(doc){ return { title:doc.title, noc_code:doc.noc_code, noc21_code:doc.noc21_code, id_en:doc.noc_job_english_title_id, id_fr:doc.noc_job_french_title_id, id:doc.noc_job_title_concordance_id, title_en:doc.title, title_fr:doc.french_title, }; }); } }, limit: 25 }); bloodhoundNOCTitle.initialize(); inputObject.typeahead( { minLength: 2 }, { name: "jobtitlesearch", displayKey: function(item) { return displaykeyNOCTitle(item) } , limit: 20, templates: { suggestion: function(data) { var inputtext = inputObject.val(); inputtext = inputtext.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|"); pattern = new RegExp(inputtext,'gi'); highlighted = displaykeyNOCTitle(data).replace(pattern,function(matched){ return '<span class="tt-highlight">'+matched+'</span>'; }); return '<p>'+displayoptionNOCTitle(highlighted,data)+'</p>'; }, notFound: function(data) { messageObject.text("No suggestions, make another selection"); noValidSelection(); return '<p class="tt-suggestion tt-selectable">'+displayoptionNOCTitle("<span class='tt-highlight'>No suggestions, make another selection</span>")+'</p>'; }, footer: function(data) { messageObject.text("Suggestions are available, use up and down arrow keys to navigate"); } }, source: bloodhoundNOCTitle.ttAdapter() }).on('typeahead:open', function(evt) { messageObject.text("Type to get suggestions"); }).on('typeahead:select', function(evt, item) { populateinputNOCTitle(item); messageObject.text( "You have selected, ‘{0}’".format( displaykeyNOCTitle(item) ) ); }).on('typeahead:change', function(evt, item) { t1 = inputObject.val(); if (t1!=selectedObjectText) { messageObject.text(""); clearinputNOCTitle(); //console.log('clear title'); } }).on('typeahead:autocomplete', function(evt, item) { populateinputNOCTitle(item); messageObject.text( "You have selected, ‘{0}’".format( displaykeyNOCTitle(item) ) ); }).on('typeahead:render', function(evt, item,c,d) { if (typeof(item) != 'undefined') { messageObject.text("Suggestions are available, use up and down arrow keys to navigate"); } }).on('typeahead:close', function(evt) { var inputvalue = inputObject.typeahead('val'); if (bloodhoundNOCTitle.remote.transport._cache.list.head) { var firstdoc = bloodhoundNOCTitle.remote.transport._cache.list.head.val.response.docs[0]; } //if ( typeof(selectedObjectText) != 'undefined' && selectedObjectText.length > 0 ) { if ( typeof(selectedObjectText) != 'undefined' && selectedObjectText.length > 0 && inputObject.val() != "" ) { //console.log('Selected: '+selectedObjectText); messageObject.text( "You have selected, ‘{0}’".format(selectedObjectText) ); } else if ( typeof(inputvalue) != 'undefined' && inputvalue.length > 0 && typeof(firstdoc) != 'undefined' && typeof(firstdoc) !== null) { //console.log('No selection then select the first docs: '+inputvalue); // no selection then select the first docs var firstitem = { title:firstdoc.title, noc_code:firstdoc.noc_code, noc21_code:firstdoc.noc21_code, id_en:firstdoc.noc_job_english_title_id, id_fr:firstdoc.noc_job_french_title_id, id:firstdoc.noc_job_title_concordance_id, title_en:firstdoc.title, title_fr:firstdoc.french_title }; inputObject.val(displaykeyNOCTitle(firstitem)); inputObject.typeahead('val',firstitem.title); populateinputNOCTitle(firstitem); messageObject.text( "You have selected, ‘{0}’".format(displaykeyNOCTitle(firstitem)) ); } else { messageObject.text(""); validSelection(); } }); }; function initJobTitleSuggestObject() { $('div.ta-jobtitlesuggest').each( function(i,obj) { new taJobtitleSuggestFunctionsV2(obj); }); } if ($(".modify-job-wb-tabs").length) { $(document).on("wb-ready.wb", initJobTitleSuggestObject); } else { $(document).ready(initJobTitleSuggestObject); } //]]> </script> <script> //<![CDATA[ var _gaq = _gaq || []; var lang = 'en'; if (lang === 'en') { domain = 'jobbank.gc.ca'; } if (lang === 'fr') { domain = 'guichetemplois.gc.ca'; } //jobbank account tracking _gaq.push(['_setAccount', 'UA-10101722-1']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_setDomainName', domain]); _gaq.push(['_gat._anonymizeIp']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; //ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/u/ga_debug.js'; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); //GA for Mega Menu $(document).on('click', '#wb-sm ul li.active.sm-open > ul.open > li > a', function(event) { var tablabel = $(this).parents('ul.open').prev().text(); var itemlabel = $(this).text(); //alert('Clicked on '+tablabel+' Mega Menu - '+itemlabel); _gaq.push(['_trackEvent', 'MegaMenu', 'action: click', 'label: '+itemlabel]); }); // Device detection for Google Analytics Smart Banner if ($("meta[name='smartbanner:page']").length) { var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; var Android = /Android/i.test(window.navigator.userAgent) && !window.MSStream; var pageName = $("meta[name='smartbanner:page']").attr("content"); if (iOS) { platform = 'iOS'; } else if (Android) { platform = 'Android'; } var onLoadHandlerForConflictTesting = function() { $('.js_smartbanner__exit').on('click', function() { //console.log('SmartBannerClose '+pageName+' '+platform); _gaq.push(['_trackEvent', 'SmartBannerClose', pageName, platform]); }); $('.smartbanner__button').on('click', function() { //console.log('SmartBannerClick '+pageName+' '+platform); _gaq.push(['_trackEvent', 'SmartBannerClick', pageName, platform]); }); if ($('.js_smartbanner').length) { //console.log('SmartBannerView '+pageName+' '+platform); _gaq.push(['_trackEvent', 'SmartBannerView', pageName, platform]); } }; window.onload = onLoadHandlerForConflictTesting; } //]]> </script> <script type="text/javascript"> //console.log('Google Analytics code'); var TFWMode; // Google Analytics - Job Search //<![CDATA[ var sourcePage; function checkThisPage() { if (false) { //console.log('This is homePage'); sourcePage = 'homePage'; } else if (false) { //console.log('This is findAJobLandingPage'); sourcePage = 'findAJobLandingPage'; } else if (true) { //console.log('This is searchResultsPage'); sourcePage = 'searchResultsPage'; } else if (false) { //console.log('This is jobPostingPage'); sourcePage = 'jobPostingPage'; } else if (false) { //console.log('This is dashboardPage'); sourcePage = 'dashboardPage'; } else if (false) { //console.log('This is alertsPages'); sourcePage = 'alertsPages'; } else if (false) { //console.log('This is matchPages'); sourcePage = 'matchPages'; } else if (false) { //console.log('This is favouritesPages'); sourcePage = 'favouritesPages'; } else if (false) { //console.log('This is browsePages'); sourcePage = 'browsePages'; } else if (false) { //console.log('This is youthHomePage'); sourcePage = 'youthHomePage'; } else if (false) { //console.log('This is TFWHomePage'); sourcePage = 'TFWHomePage'; } else { sourcePage = '/jobsearch/job_search.xhtml'; } } checkThisPage(); $('form.search-module').submit(function(){ //alert('GA '+sourcePage); var searchString = $("#searchString").val(); var locationString = $("#locationstring").val(); if ($("input[name=fsrc]").val() == "21") { var fsrc21 = true; //alert('CSJ fsrc 21'); } if ($("input[name=fsrc]").val() == "32") { var fsrc32 = true; //alert('TFW fsrc 32'); } if (_gaq != undefined) { if ((!fsrc21 && !fsrc32)) { //alert('General GA - Job Search Mode'); if (searchString.length && locationString.length) { //alert('searchString: '+searchString+ ' and locationString: '+locationString+'\nSource page: '+sourcePage); _gaq.push(['_trackEvent', 'jobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'jobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'jobSearch', 'source : '+sourcePage, searchString+' '+locationString]); } if (searchString.length && !locationString.length) { //alert('searchString: '+searchString+'\nSource page: '+sourcePage); _gaq.push(['_trackEvent', 'jobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'jobSearch', 'source : '+sourcePage, searchString]); } if (!searchString.length && locationString.length) { //alert('locationString: '+locationString+'\nSource page: '+sourcePage); _gaq.push(['_trackEvent', 'jobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'jobSearch', 'source : '+sourcePage, locationString]); } if (!searchString.length && !locationString.length) { //alert('No search!'+'\nSource page: '+sourcePage); _gaq.push(['_trackEvent', 'jobSearchTitle', 'source : '+sourcePage, '']); _gaq.push(['_trackEvent', 'jobSearchLocation', 'source : '+sourcePage, '']); _gaq.push(['_trackEvent', 'jobSearch', 'source : '+sourcePage, '']); } } else { //alert('GA else search'); if (fsrc21) { //alert('General GA - CSJ Mode!'); if (searchString.length && !locationString.length) { _gaq.push(['_trackEvent', 'CSJjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'CSJjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'CSJjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('GAQ title: '+searchString+'\nSource page: '+sourcePage); } if (locationString.length && !searchString.length) { _gaq.push(['_trackEvent', 'CSJjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'CSJjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'CSJjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('GAQ location: '+locationString+'\nSource page: '+sourcePage); } if (searchString.length && locationString.length) { _gaq.push(['_trackEvent', 'CSJjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'CSJjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'CSJjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('GAQ title: '+searchString+'\nGAQ location: '+locationString+'\nSource page: '+sourcePage); } if (!searchString.length && !locationString.length) { _gaq.push(['_trackEvent', 'CSJjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'CSJjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'CSJjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('BOTH EMPTY!'+'\nGAQ title: '+searchString+'\nGAQ location: '+locationString+'\nSource page: '+sourcePage); } } if (fsrc32) { //alert('General GA - TFW Mode!'); if (searchString.length && !locationString.length) { _gaq.push(['_trackEvent', 'TFWjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'TFWjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'TFWjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('TFW GAQ title: '+searchString+'\nSource page: '+sourcePage); } if (locationString.length && !searchString.length) { _gaq.push(['_trackEvent', 'TFWjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'TFWjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'TFWjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('TFW GAQ location: '+locationString+'\nSource page: '+sourcePage); } if (searchString.length && locationString.length) { _gaq.push(['_trackEvent', 'TFWjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'TFWjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'TFWjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('TFW GAQ title: '+searchString+'\nTFW GAQ location: '+locationString+'\nSource page: '+sourcePage); } if (!searchString.length && !locationString.length) { _gaq.push(['_trackEvent', 'TFWjobSearchTitle', 'source : '+sourcePage, searchString]); _gaq.push(['_trackEvent', 'TFWjobSearchLocation', 'source : '+sourcePage, locationString]); _gaq.push(['_trackEvent', 'TFWjobSearch', 'source : '+sourcePage, searchString+' '+locationString]); //alert('TFW BOTH EMPTY!'+'\nTFW GAQ title: '+searchString+'\nTFW GAQ location: '+locationString+'\nSource page: '+sourcePage); } } } } }); //]]> </script> <script type="text/javascript" src="/themes-sat/js/deps/jquery.validate.js"></script> <script type="text/javascript" src="/themes-sat/js/deps/additional-methods.min.js"></script> <script type="text/javascript" src="/themes-jb/js/settings/custom-validation-methods.js"></script> <script src="/themes-jb/js/leaflet/leaflet.js"></script> <script src="/themes-jb/js/leaflet/leaflet-heat.js"></script> <script src="/themes-jb/js/leaflet/geostats.min.js"></script> <script src="/themes-jb/js/leaflet/proj4.js"></script> <script src="/themes-jb/js/leaflet/proj4leaflet.js"></script> <script src="/themes-jb/js/leaflet/leafletSolrHeatmap.js"></script> <script> //<![CDATA[ var inputlang = document.documentElement.lang; if (inputlang === undefined) inputlang = "en"; // 1km is about 0.02 degree at the latitude of 60 degree // zoom level 0 is 360 each level divide that degree (zoom 1 = 180 degree, ...) // 500km is about zoom level 5 // 50km is about zoom level 8 // 5km is about zoom level 15 var zoomlevel = 1; /*var radius = 1; if (radius>13) zoomlevel = 9; if (radius>25) zoomlevel = 8; if (radius>52) zoomlevel = 7; if (radius>110) zoomlevel = 6; if (radius>230) zoomlevel = 5; if (radius>430) zoomlevel = 4;*/ var crs = new L.Proj.CRS('EPSG:3978', '+proj=lcc +lat_1=49 +lat_2=77 +lat_0=49 +lon_0=-95 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs', { resolutions: [ 38364.660062653464, 22489.62831258996, 13229.193125052918, 7937.5158750317505, 4630.2175937685215, 2645.8386250105837, 1587.5031750063501, 926.0435187537042, 529.1677250021168, 317.50063500127004, 185.20870375074085, 111.12522225044451, 66.1459656252646, 38.36466006265346, 22.48962831258996, 13.229193125052918, 7.9375158750317505, 4.6302175937685215, 2.6458386250105836, 1.5875031750063502, 0.92604351875370428, 0.52916772500211673, 0.31750063500127002, 0.18520870375074083, 0.11112522225044451, 0.066145965625264591 ], origin: [-34655800, 39310000] }); var radiusmap = L.map('radiusmap', { crs: crs }).setView([57.0,-95.0], zoomlevel); var mapurl = 'https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBMT3978/MapServer/tile/{z}/{y}/{x}'; if (inputlang == 'fr') mapurl = 'https://maps-cartes.services.geo.ca/server2_serveur2/rest/services/BaseMaps/CBCT3978/MapServer/tile/{z}/{y}/{x}'; if ($(window).width() > 992) { var layer = L.tileLayer(mapurl, { minZoom: 1, maxZoom: 13, attribution: '<a href="https://www.nrcan.gc.ca/earth-sciences/geography/topographic-information/free-data-geogratis/licence/17285" title="Canada Base Map © Natural Resources Canada" class="style-scope web-map">Canada Base Map © Natural Resources Canada</a>' }).addTo(radiusmap); } var circley = ''; if (circley) { var circle = L.circle([, ], { color: 'red', fillColor: '#f03', fillOpacity: 0.1, interactive: false, radius: 000 }).addTo(radiusmap); } /* var marker = L.marker([,], { interactive: false, alt: 'radius center', title: '' }).addTo(radiusmap); */ // remove the shadow pane (otherwise each shadow image is read out) $('.leaflet-shadow-pane').remove(); $('.leaflet-marker-pane img').attr('target','-1'); $('.leaflet-overlay-pane svg').attr('focusable','false'); // prevent screen readers from reading out each map tile $('.leaflet-tile-container img, .leaflet-shadow-pane img').attr('role','presentation').attr('alt',''); /* $("#radiusmap").focusin(function() { $("div#radiusmap").css("outline","medium dotted #ccc"); }); $("#radiusmap").focusout(function() { $("div#radiusmap").css("outline","medium none currentcolor"); }); */ //]]> </script> <script> //<![CDATA[ radiusmap.on('popupopen',function(popup) { // shift focus to the popup when it opens $(popup.popup._container).find('.my-popup-content').attr('tabindex','-1').focus(); // move the close button to the end of the popup content so screen readers reach it // after the main popup content, not before var close = $(popup.popup._container).find('.leaflet-popup-close-button'); $(popup.popup._container).find('.leaflet-popup-close-button').remove(); close.attr('title','Close item'); $(popup.popup._container).append(close); }); // return focus to the icon we started from before opening the pop up radiusmap.on('popupclose',function(popup) { //$(popup.popup._source._icon).focus(); }); /**/ var recenterpopup = L.popup({ maxWidth:170 }); radiusmap.on('click',function(popup) { var provrqq = ''; renderNearbyCity(popup.latlng, provrqq); }); var cityref = 'page=1&sort=M'; function renderCityPopup(cityitem) { var newLatLng = new L.LatLng(cityitem.latitude, cityitem.longitude); //var ref = 'page=1&sort=M'; var re = /(^|&)mid=[0-9]*($|&)/; var rpst = /pst=[^&]*($|&)/; var rlat = /lat=[^&]*($|&)/; var rlng = /lng=[^&]*($|&)/; var rprov = /fprov=[^&]*($|&)/g; var rp = /page=[0-9]*/; cityref = cityref.replace(rp,"page=1"); var provcd = cityitem.province_cd; // on low zoom display province name if (radiusmap.getZoom()<4 || (radiusmap.getZoom()<5 && (cityitem.province_cd=='PE' || cityitem.province_cd=='NB' || cityitem.province_cd=='NS'))) { // replace for prov param cityref = cityref.replace(re,"$2"); cityref = cityref.replace(rpst,""); cityref = cityref.replace(rlat,""); cityref = cityref.replace(rlng,""); cityref = cityref.replace(rprov,""); if (cityref.endsWith("&")) cityref = cityref+'fprov='+provcd; else cityref = cityref+'&fprov='+provcd; recenterpopup .setLatLng(newLatLng) .setContent('Launch a search in:<br/><a href="jobsearch?'+cityref+'#search-apps-group" onclick="updateLocationParam();updateResultWithUrl(this);return false;" data-url="'+cityref+'">'+cityitem.province_name+'</a> <span id="mappopupjobcount" style="white-space: nowrap;"></span>') .openOn(radiusmap); popupjobcount(cityref); } else { // replace city param cityref = cityref.replace(re,"$1mid="+cityitem.city_id+"$2"); cityref = cityref.replace(rpst,"mid="+cityitem.city_id+"$1"); cityref = cityref.replace(rlat,"mid="+cityitem.city_id+"$1"); cityref = cityref.replace(rlng,""); if (!re.test(cityref)) { cityref = cityref+'&mid='+cityitem.city_id; } // remove province filter if not the city province var rprovcity = new RegExp("(^|&)fprov="+provcd); if (!rprovcity.test(cityref)) { cityref = cityref.replace(rprov,""); } recenterpopup .setLatLng(newLatLng) .setContent('Launch a search in:<br/><a href="jobsearch?'+cityref+'#search-apps-group" onclick="updateLocationParam('+cityitem.city_id+');updateResultWithUrl(this);return false;" data-url="'+cityref+'">'+cityitem.name+', '+cityitem.province_cd+'</a> <span id="mappopupjobcount" style="white-space: nowrap;"></span>') .openOn(radiusmap); popupjobcount(cityref); } } String.prototype.format = function() { var args = arguments; return this.replace(/\{(\d+)\}/g, function() { return args[arguments[1]]; }); }; function popupjobcount(ref) { var values = { }; values['qt'] = "/jobsearch"; values['start'] = "0"; values['rows'] = "0"; values['wt'] = "json"; values['facetmode'] = "mapnofacet"; $.ajax({ url: '/core/job2_'+inputlang+'/jobsearch?'+ref, dataType: 'JSON', async: true, data: values, jsonp: 'json.wrf', success: function(data) { var numfound = data.response.numFound; $('#mappopupjobcount').html('<span class="found" aria-live="polite" aria-atomic="true">{0}</span> results'.format(numfound)); } }); } function countInProvince(provcd) { $.ajax({ url: '/core/job2_'+inputlang+'/select', dataType: 'JSONP', async: false, data: { wt: 'json', q: '*:*', fq: 'province_cd:'+provcd, start: '0', rows: '0' }, jsonp: 'json.wrf', success: function(data) { var numfound = data.response.numFound; $('#mappopupjobcount').html('<span class="found" aria-live="polite" aria-atomic="true">{0}</span> results'.format(numfound)); } }); } function renderNearbyCity(latlng, provrqq) { var qlev = 'NOT ppn_code:7'; if (radiusmap.getZoom()<14) { qlev+= ''; } if (radiusmap.getZoom()<9) { qlev+= ' NOT ppn_code:3 NOT ppn_code:6'; } if (radiusmap.getZoom()<8) { qlev+= ' NOT ppn_code:5 NOT ppn_code:4'; } if (radiusmap.getZoom()<7) { qlev+= ' NOT ppn_code:2'; } var datavalues = { q: qlev, wt: 'json', fl: '*,_dist_:geodist()', sfield:'geolocation', pt: latlng.lat+','+latlng.lng, sort: 'geodist() asc', rows:'1' }; // TODO complete the code if (provrqq) { datavalues['rq'] = '{!rerank reRankQuery=$rqq reRankDocs=2 reRankWeight=1}'; datavalues['rqq'] = provrqq; } $.ajax({ url: '/core/ta-citysuggest_'+inputlang+'/select', dataType: 'JSONP', async: false, data: datavalues, jsonp: 'json.wrf', success: function(data) { renderCityPopup(data.response.docs[0]); } }); } // Create and add a solrHeatmap layer to the map var q = '*:*'; var fq = ''; /* var solr = L.solrHeatmap('/core/job2_'+inputlang, { // Solr field with geospatial data (should be type Spatial Recursive Prefix Tree) field: 'latlng_rpt', q:q, fq:fq, colors:['#53649d','#9ea9cc'], // Set type of visualization. Allowed types: 'geojsonGrid', 'clusters' Note: 'clusters' requires LeafletMarkerClusterer type: 'heatmap', // Inherited from L.GeoJSON // onEachFeature: onEachFeature }).addTo(radiusmap);*/ //]]> </script> <script> //<![CDATA[ var x = document.getElementById("centerlocation"); var inputlang = document.documentElement.lang; function gotoLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { window.location.href = '?page=1&sort=M&lat=' + position.coords.latitude + '&lng=' + position.coords.longitude; }); } } addCurrentLocationLink(); function addCurrentLocationLink() { if (navigator.geolocation) { var aTag = document.createElement('a'); aTag.setAttribute('href','#'); aTag.setAttribute('class','btn btn-default btn-xs btn-block btn-clear'); aTag.setAttribute('onclick','gotoLocation(); return false;'); aTag.innerHTML = "<span class='far fa-bullseye-pointer' aria-hidden='true'></span> Center on your location"; x.appendChild(aTag); } } //]]> </script><script type="text/javascript"> //<![CDATA[ //Remove WET GC Theme Loupe Icon $('#wb-glb-mn .overlay-lnk span.glyphicon.glyphicon-search').removeClass('glyphicon-search'); $('#results-filter-wrapper, .results-filter-content .list-group').addClass('noanim'); $('#results-filter-wrapper, .results-filter-content .list-group').each(function(i) { var elm=$(this); setTimeout(function() { elm.removeClass('noanim'); }, i * 500); }); //Initialize localstorage var reload; initlocalstorageFunctions = function() { if (localStorage) { if (localStorage.getItem('functionResultFilter') === 'active' ) { //console.log('#Localstorage: filter is active'); if (!$('.results-content').hasClass('filter-hide')) { $('.skip-to-filters').show(); if ($('.results-filter-wrapper').length) { //console.log('Search results!'); if ($('.results-filter-wrapper').css('visibility') === 'visible') { reload = true; //console.log('.results-filter-wrapper is VISIBLE'); //showFilter(); if ($('.search-input-content').css('display') === 'none') { //console.log('display none - Mobile!'); hideFilter(); } else { //console.log('display block - Desktop!'); showFilter(); } } else { reload = true; //console.log('.results-filter-wrapper is HIDDEN'); hideFilter(); } } if ($('#results-list-wrapper').hasClass("col-md-12:not(:has(.courses))")) { $('#results-list-wrapper').removeClass('col-md-12').addClass('col-md-9'); } } } else if (localStorage.getItem('functionResultFilter') === 'disabled' ) { //console.log('#Localstorage: filter is disabled'); reload = true; $('.skip-to-filters').hide(); hideFilter(); } else { //console.log('#Localstorage: filter is N/A'); reload = true; //showFilter(); //hideFilter(); $('.results-list-wrapper').each(function(i) { var elm=$(this); setTimeout(function() { elm.removeClass('noanim'); }, i * 500); }); } // Sort By if (localStorage.getItem('functionSortBy') === 'active') { //console.log('Sort By - Active'); resetSearchOverlay(); activateSortBy(); if ($('.results-sortby-group').css('visibility') === 'hidden') { //Mobile if ($('.results-filter-button-overlay').css('position') === 'fixed') { //console.log('Sort By - Mobile!'); if (!$('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').addClass('noBorder'); $('.results-sortby-group').addClass('sortby-group-visible'); } } //Desktop if ($('.results-filter-button-overlay').css('position') === 'relative') { //console.log('Sort By - Desktop!'); if ($('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); resetDynamicFilter(); } } } else if ($('.results-sortby-group').css('visibility') === 'visible') { //Mobile if ($('.results-filter-button-overlay').css('position') === 'fixed') { //console.log('Sort By - Mobile!'); if (!$('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').addClass('noBorder'); $('.results-sortby-group').addClass('sortby-group-visible'); } } //Desktop if ($('.results-filter-button-overlay').css('position') === 'relative') { //console.log('Sort By - Desktop!'); $('main').removeClass('sortby-visible'); if ($('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); } } } } else if (localStorage.getItem('functionSortBy') === 'disabled' ) { //console.log('Sort By - Disabled'); $('main').removeClass('sortby-visible'); $('.command-result-sortby-overlay').removeClass('active'); //Mobile if ($('.results-filter-button-overlay').css('position') === 'fixed') { if ($('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); } } //Desktop if ($('.results-filter-button-overlay').css('position') === 'relative') { if ($('.results-sortby-group').hasClass('sortby-group-visible')) { $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); } } } else { localStorage.setItem('functionSortBy', 'disabled'); $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); } if ($('.results-content').hasClass('filter-hide')) { $("#results-filter-wrapper").addClass("invisible"); } else if ($('.results-content').hasClass('filter-visible')) { $("#results-filter-wrapper").removeClass("invisible"); } } } function resetSearchOverlay() { //console.log('Reset Search Overlay'); $('#header-search').removeClass('search-visible'); $('.search-input-content').removeClass('noBorder'); $('main').removeClass('search-visible'); $('.command-search-overlay').removeClass('active'); $('.command-search-overlay').removeClass('btn-default'); $('.command-search-overlay').addClass('btn-primary'); $('.command-search-overlay').find('.text').text("Search"); $('.command-search-overlay').find('.far').removeClass('fa-times').addClass('fa-search'); $('.results-filter-button-overlay').removeClass('noBorder'); } function resetDynamicFilter() { //console.log('Course resetDynamicFilter'); //Mobile if ($('.results-filter-button-overlay').css('position') === 'fixed') { checkToggleFilterList(); } //Desktop if ($('.results-filter-button-overlay').css('position') === 'relative') { $('.results-filter-content section').find('.list-group').not('.stay-open').removeClass('close'); $('.results-filter-content section h3').not('.nonActive').attr({"tabindex":"0", "aria-expanded": "true", "aria-haspopup":"false", "data-toggle":"dropdown"}).find('.toggleFilterList').remove(); } } function activateSortBy() { //console.log('Activate Sort By Overlay'); $('main').addClass('sortby-visible'); localStorage.setItem('functionSortBy', 'active'); $('.command-result-sortby-overlay').addClass('active'); $('.results-sortby-group').addClass('sortby-group-visible'); $('.results-filter-button-overlay').addClass('noBorder'); } function resetSortBy() { //console.log('Reset Sort By Overlay'); $('main').removeClass('sortby-visible'); localStorage.setItem('functionSortBy', 'disabled'); $('.command-result-sortby-overlay').removeClass('active'); $('.results-sortby-group').removeClass('sortby-group-visible'); $('.results-filter-button-overlay').removeClass('noBorder'); } function hideFilter() { //console.log('#Hide Filter'); $('.command-result-filter-overlay').removeClass('active').attr('aria-expanded','false'); $('.results-content').addClass('filter-hide').removeClass('filter-visible'); if (reload) { //console.log('reload hide filter'); //console.log('reload: '+reload); reload = false; $('.results-list-wrapper').removeClass('col-md-9').addClass('col-md-12 noanim'); } else { //console.log('not reload hide filter'); $('.results-list-wrapper').removeClass('noanim'); $('.results-list-wrapper').removeClass('col-md-9').addClass('col-md-12'); } if (localStorage) { localStorage.setItem('functionResultFilter', 'disabled'); } } function showFilter() { //console.log('#Show Filter'); $('.command-result-filter-overlay').addClass('active').attr('aria-expanded','true'); $('.results-content').addClass('filter-visible').removeClass('filter-hide'); if (reload) { //console.log('reload show filter'); reload = false; //$('.results-list-wrapper').removeClass('col-md-12').addClass('col-md-9 noanim'); if ($('.results-list-wrapper').hasClass("col-md-12")) { $('.results-list-wrapper').removeClass('col-md-12').addClass('col-md-9 noanim'); } } else { //console.log('not reload show filter'); $('.results-list-wrapper').removeClass('noanim'); //$('.results-list-wrapper').removeClass('col-md-12').addClass('col-md-9'); if ($('.results-list-wrapper').hasClass("col-md-12")) { $('.results-list-wrapper').removeClass('col-md-12').addClass('col-md-9'); } } if (localStorage) { localStorage.setItem('functionResultFilter', 'active'); } } //On load - CSJ check - For mobile app compatibility if (localStorage) { localStorage.removeItem('youthSearchLocation'); //localStorage.removeItem('volunteerSearchLocation'); //var fromYouthPage = JSON.parse(localStorage.getItem('fromYouthPage')); var fromVolunteerPage = JSON.parse(localStorage.getItem('fromVolunteerPage')); //var youthSearchLocation = localStorage.getItem('youthSearchLocation'); var volunteerSearchLocation = localStorage.getItem('volunteerSearchLocation'); var currentSearchString = $('.searchString').val(); //Volunteer if ($("#volunteerPage, #jobSearchResultsJobSearchForm.volunteer").length) { //console.log('Volunteer page'); if ($("#cityPostalCodeInput").length) { //console.log('Volunteer search page!'); var newSearchString = currentSearchString.replace(volunteerSearchLocation, ''); if (fromVolunteerPage) { //console.log('From volunteer page!'); //$("#searchStringPseudo").val($.trim(newSearchString)); $("#cityPostalCodeInput").val($.trim(volunteerSearchLocation)); //localStorage.removeItem('volunteerSearchLocation'); localStorage.setItem('fromVolunteerPage', JSON.stringify(false)); } else { //console.log('not from volunteer page'); $("#cityPostalCodeInput").val($.trim(volunteerSearchLocation)); //localStorage.removeItem('volunteerSearchLocation'); } if ($("#volunteerPage").length) { localStorage.removeItem('volunteerSearchLocation'); } } } } //$(document).on("ready", saveLoginRedirectURIListener); $(document).ready(function(){ //Initiate localstorage functions once document have been loaded initlocalstorageFunctions(); //Restore infinite scroll position on reload if ($('.command-search-overlay').length){ if (sessionStorage.scrollTop != "undefined") { $(window).scrollTop(sessionStorage.scrollTop); //console.log('Old scroll position: '+$(window).scrollTop()); //Resets scroll position $(document).on('click', '.results-filter-content .list-group-item a', function() { sessionStorage.scrollTop = ''; return true; }); } } /* Mobile menu functionality */ $(document).on('click', '.search-apps li.mobile-menu > a', function() { $('.search-apps li ul').toggleClass('show'); if ($('.search-apps li ul').hasClass('show')) { $(this).attr('aria-expanded','true'); $(this).addClass('active'); $(this).find('.fas').removeClass('fa-chevron-circle-right').addClass('fa-chevron-circle-down'); } else { $(this).attr('aria-expanded','false'); $(this).removeClass('active'); $(this).find('.fas').removeClass('fa-chevron-circle-down').addClass('fa-chevron-circle-right'); } return false; }); /* Side menu */ $('.search-apps li a').keydown( function(event) { // Up key if (event.keyCode == 38) { if ($(document.activeElement).closest('li').is('.mobile-menu')) { $(document.activeElement).closest('li').find('ul').children('li:visible:last').find('a').focus(); } else if ($(document.activeElement).closest('li').is(':nth-child(1)')) { $(document.activeElement).closest('li').siblings(':visible:last').find('a').focus(); } else if (!$(document.activeElement).closest('li').is(':nth-child(1)')) { if ($(document.activeElement).closest('li').prev().is('.search-apps li:visible')) { $(document.activeElement).closest('li').prev('.search-apps li:visible').find('a').focus(); } else if ($(document.activeElement).closest('li').prev('.search-apps li:hidden')) { $(document.activeElement).closest('li').siblings(':visible:last').find('a').focus(); } } event.preventDefault(); } // Down key if (event.keyCode == 40) { if ($(document.activeElement).closest('li').is('.mobile-menu')) { $(document.activeElement).closest('li').find('ul').children('li:nth-child(1)').find('a').focus(); } else if ($(document.activeElement).closest('li').is('.search-apps li:visible:last')) { $(document.activeElement).closest('li').siblings(':nth-child(1)').find('a').focus(); } else if (!$(document.activeElement).closest('li').is('.search-apps li:visible:last')) { if ($(document.activeElement).closest('li').next().is('.search-apps li:visible')) { $(document.activeElement).closest('li').next().find('a').focus(); } else if ($(document.activeElement).closest('li').next('.search-apps li:hidden')) { $(document.activeElement).closest('li').siblings(':visible:last').find('a').focus(); } } event.preventDefault(); } // Escape key if(event.which == 27) { if ($('.search-apps li ul').hasClass('show')) { $('.search-apps li ul').removeClass('show'); $('.mobile-menu a').attr('aria-expanded','false'); } event.preventDefault(); } }); $('.searchString, .locationstring').on('focus', function(){ $('.input-wrapper').addClass('focus'); if ($(".searchString").val() == "") { } }); $('.searchString, .locationstring').on('blur', function(){ $('.input-wrapper').removeClass('focus'); }); /* $("#searchString").on("keyup", function () { var search = this.value; if (!search) { //console.log('#searchString has no value!'); $("#searchString").val(""); } }); */ $('.searchString, .locationstring').change(); // Hide location options with timer var timeoutHideLocationOptionTimer; function hideLocationOptionTimer() { timeoutHideLocationOptionTimer = setTimeout(function(){ //console.log('hideLocationOptionTimer!!!!!'); $('#cityPostalCodeSpecial').addClass('wb-inv'); //$('#advanced-search-button').focus(); }, 200); } $(".locationstring").on('focus', function() { //console.log('#locationstring focus'); clearTimeout(timeoutHideLocationOptionTimer); //if (!$('#header-search').hasClass("search-visible")) { $('#cityPostalCodeSpecial').removeClass('wb-inv'); //} $('.search-input-content').addClass('focus'); //console.log('focus'); var search = this.value; if (search) { //console.log('Has value!'); //if (!$('#header-search').hasClass("search-visible")) { $('#cityPostalCodeSpecial').addClass('wb-inv'); //} } else { //console.log('No value!'); //if (!$('#header-search').hasClass("search-visible")) { $('#cityPostalCodeSpecial').removeClass('wb-inv'); //} } }); // When the user type, we hide div $(".locationstring").on("keyup", function () { var search = this.value; $('#cityPostalCodeSpecial').removeClass('wb-inv'); if (search) { //console.log('#locationstring - Has value'); //if (!$('#header-search').hasClass("search-visible")) { $('#cityPostalCodeSpecial').addClass('wb-inv'); //} } else { //$("#locationstring").val(""); //console.log('#locationstring - Has NO value'); //if (!$('#header-search').hasClass("search-visible")) { $('#cityPostalCodeSpecial').removeClass('wb-inv'); //} } }); $(".locationstring").on('blur', function() { hideLocationOptionTimer(); $('#jobSearchBar').removeClass('focus'); }); $(".locationstring").keydown( function(event) { if(event.which == 27) { hideLocationOptionTimer(); event.preventDefault(); } }); $('#cityPostalCodeSpecial a').on('focus', function() { //console.log('#cityPostalCodeSpecial options - Focus ON'); clearTimeout(timeoutHideLocationOptionTimer); $('#cityPostalCodeSpecial').removeClass("wb-inv"); $('.search-input-content').addClass('focus'); }); $("#advanced-search-button").on("click", "a", function() { var text = $(this).attr("data-input"); var form = $(this).form; console.log("form found"); form.action = '?'+text; return false; }); $("#cityPostalCodeSpecial").on("click", "a", function() { //console.log('#cityPostalCodeSpecial option - Activated'); var text = $(this).attr("data-input"); var inputObject = $(this).parent(".ta-cityprovsuggest").find("input:text:first"); switch(text) { case "canada": $(".locationstring").val("Canada"); $(".locationstring").typeahead('val',"Canada"); break; case "local": if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(pos) { const latitude = pos.coords.latitude; const longitude = pos.coords.longitude; const accuracy = pos.coords.accuracy; const coordinatesString = "Latitude: " + latitude + ", Longitude: " + longitude + ", Accuracy: " + accuracy + " meters"; console.log("Coords: " + coordinatesString); var latlng = pos.coords; // ajax call to solr for name of city $('.locationstring').addClass('working'); // pt: '45.558958,-75.628912' // pt: latlng.lat+','+latlng.lng, $.ajax({ url: '/core/ta-postalcode/select', dataType: 'JSONP', async: false, data: { q: '*:*', wt: 'json', fl: '*,_dist_:geodist()', sfield:'geolocation', pt: latlng.latitude+','+latlng.longitude, sort: 'geodist() asc', rows:'1' }, jsonp: 'json.wrf', success: function(data,status) { $(".locationstring").val(data.response.docs[0].postalcode); $(".locationstring").typeahead('val',data.response.docs[0].postalcode); }, complete: function(jqXHR,status) { $('.locationstring').removeClass('working'); } }); }, function(error) { switch(error.code) { case error.PERMISSION_DENIED: console.log("User denied the request for Geolocation."); $(".locationstring").val(""); $("#messageblock").html('<div class="alert alert-info"><p>We can’t identify your current location</p></div>'); break; case error.POSITION_UNAVAILABLE: console.log("Location information is unavailable."); $(".locationstring").val(""); $("#messageblock").html('<div class="alert alert-info"><p>We can’t identify your current location</p></div>'); break; case error.TIMEOUT: console.log("The request to get user location timed out."); $(".locationstring").val(""); $("#messageblock").html('<div class="alert alert-info"><p>We can’t identify your current location</p></div>'); break; case error.UNKNOWN_ERROR: console.log("An unknown error occurred."); $(".locationstring").val(""); $("#messageblock").html('<div class="alert alert-info"><p>We can’t identify your current location</p></div>'); break; } }); } else { $(".locationstring").val(""); $("#messageblock").html('<div class="alert alert-info"><p>We can’t identify your current location</p></div>'); } break; case "profile": $(".locationstring").val("@profile"); $(".locationstring").typeahead('val',"@profile"); break; } return false; }); $("#cityPostalCodeSpecial").on("blur", "a", function() { //console.log('Link out!'); $('#jobSearchBar').removeClass('focus'); hideLocationOptionTimer(); }); $("#cityPostalCodeSpecial").keydown( function(event) { if(event.which == 27) { hideLocationOptionTimer(); event.preventDefault(); } }); $('.results-content.filter-visible .results-filter-button-overlay').css('display', 'inline-block'); $('.results-filter-button-overlay').show(); $('.command-result-filter-overlay').addClass('active').attr('aria-expanded','false');; if (localStorage) { if ($('.hero-content-wrapper').length) { //console.log("#Landing page so filter is active"); localStorage.setItem('functionResultFilter', 'active'); } } //Advance search - language filter always associated with Job Bank jobs /* $('input[name="jobSearchForm:flg"]').change( function() { var langFlag = $('input[name="jobSearchForm:flg"]'); if ($(langFlag).is(':checked')) { $('#jobSearchForm\\:fsrc\\:0').prop('checked',true); } else { $('#jobSearchForm\\:fsrc\\:0').prop('checked',false); } }); */ $('input[name="jobSearchForm:flg"]').change(); $(document).on('click', '#searchButton', function() { if ($(this).parents("section#search-input-content").hasClass("show-advance-search")) { //console.log('advance search'); //alert('advance search'); $('#searchButtonAdvance').click(); } else { //console.log('normal search'); //alert('normal search'); if ($(this).parents("#jobSearchBar")) { //console.log('jobsearch form'); adobeDataLayer.push({ "event": "customclick", "link": { "customCall":"ESDC:EDSC:JobBank Job Search Click" } }); //return false; } sessionStorage.scrollTop = ''; return true; } return false; }); //Toggle checkbox for fper $(document).on('click', '#jobSearchForm\\:fper input:checkbox', function() { var fper = $('#jobSearchForm\\:fper input:checkbox'); var checked = $(this).is(':checked'); fper.prop('checked',false); if(checked) { $(this).prop('checked',true); } }); /* $('.tt-input').blur(function(event) { let menuLength = $('.tt-dataset-ta-communitysuggest > p').length if(event.keyCode == 13 && menuLength == 1) { $('.tt-dataset-ta-communitysuggest p:first-child').first()[0].click() } }); */ $('button.command-advance-search-clear').click( function(){ $('#search-module').get(0).reset(); $('#search-module input[type=checkbox]').removeAttr('checked'); $('#search-module input[type=radio]').removeAttr('checked'); $('#search-module select').val(""); $('#search-module input[name=pcode').val(""); }); //GA $('#homePage').submit(function(){ if (_gaq != undefined) { _gaq.push(['_trackEvent', 'jobSearch', 'source : homePage', $(".searchString").val()]); } }); $('#jobSeekersPage').submit(function(){ if (_gaq != undefined) { _gaq.push(['_trackEvent', 'jobSearch', 'source : jobSeekersPage', $(".searchString").val()]); } }); /* $('#jobSearchResultsJobSearchForm').submit(function(){ if (typeof _gaq !== 'undefined') if (!$("#cityPostalCodeInput").length) { //alert('GAQ title: '+$("#searchString").val()); _gaq.push(['_trackEvent', 'jobSearch', 'source : jobSearchResultsPage', $("#searchString").val()]); } }); */ $('#jobPostingPage').submit(function(){ if (typeof _gaq !== 'undefined') { _gaq.push(['_trackEvent', 'jobSearch', 'source : jobPostingPage', $(".searchString").val()]); } }); // Advanced search $('#search-module').submit(function(){ var advancedSearchTitle = $("#dkw").val(); var advancedSearchLocation = $("#cityPostalCodeInput").val(); var advancedSearchEmployer = $("#empl").val(); //alert('GAQ title: '+advancedSearchTitle+'\nGAQ location: '+advancedSearchLocation+'\nGAQ employer: '+advancedSearchEmployer); if (_gaq != undefined) { _gaq.push(['_trackEvent', 'advancedSearchTitle', 'source : advancedSearchPage', advancedSearchTitle]); _gaq.push(['_trackEvent', 'advancedSearchLocation', 'source : advancedSearchPage', advancedSearchLocation]); _gaq.push(['_trackEvent', 'advancedSearchEmployer', 'source : advancedSearchPage', advancedSearchEmployer]); } }); // Modified CSJ search - For mobile app compatibility /* $('#youthPage, #jobSearchResultsJobSearchForm.csj').submit(function(){ var jobTitle = $("#searchString").val(); var jobTitlePseudo = $("#searchStringPseudo").val(); var location = $("#cityPostalCodeInput").val(); if (localStorage) { if ($("#cityPostalCodeInput").length) { //alert('CSJ search!'); var replaceDuplicateLocation = location; var replaceDuplicateLocationString = new RegExp(replaceDuplicateLocation,"g"); var newSearchStringPseudo = jobTitlePseudo.replace(replaceDuplicateLocationString, ''); var newSearchString = jobTitle.replace(location, ''); if ($(this).attr('id') === 'youthPage') { //alert('This is Youth Page CSJ search!'); localStorage.removeItem('youthSearchLocation'); localStorage.setItem('youthSearchLocation', location); localStorage.setItem('fromYouthPage', JSON.stringify(true)); } if ($(this).attr('id') === 'jobSearchResultsJobSearchForm') { //alert('This is search results CSJ!'); localStorage.removeItem('youthSearchLocation'); localStorage.setItem('youthSearchLocation', location); localStorage.setItem('fromYouthPage', JSON.stringify(false)); } $('#searchString').val($.trim(newSearchStringPseudo+' '+location)); $("#cityPostalCodeInput").attr("disabled", "disabled"); $("#searchStringPseudo").attr("disabled", "disabled"); } } }); */ // Modified Volunteer search - For mobile app compatibility $('#volunteerPage, #jobSearchResultsJobSearchForm.volunteer').submit(function(){ //alert('Volunteer job - Submit'); var jobTitle = $(".searchString").val(); //var jobTitlePseudo = $("#searchStringPseudo").val(); var location = $("#cityPostalCodeInput").val(); if (localStorage) { if ($("#cityPostalCodeInput").length) { //alert('Volunteer search!'); //var replaceDuplicateLocation = location; //var replaceDuplicateLocationString = new RegExp(replaceDuplicateLocation,"g"); //var newSearchStringPseudo = jobTitlePseudo.replace(replaceDuplicateLocationString, ''); //var newSearchString = jobTitle.replace(location, ''); if ($(this).attr('id') === 'volunteerPage') { //alert('This is Volunteer Landing Page search!'); localStorage.removeItem('volunteerSearchLocation'); localStorage.setItem('volunteerSearchLocation', location); localStorage.setItem('fromVolunteerPage', JSON.stringify(true)); } if ($(this).attr('id') === 'jobSearchResultsJobSearchForm') { //alert('This is search results Volunteer!'); localStorage.removeItem('volunteerSearchLocation'); localStorage.setItem('volunteerSearchLocation', location); localStorage.setItem('fromVolunteerPage', JSON.stringify(false)); } $('.searchString').val(location); $("#cityPostalCodeInput").attr("disabled", "disabled"); //$("#searchStringPseudo").attr("disabled", "disabled"); } } }); /* Store the window width */ var windowWidth = $(window).width(); var resizeUI; /* Resize Event */ $(window).resize(function(){ // Check window width has actually changed and it's not just iOS triggering a resize event on scroll if ($(window).width() != windowWidth) { //console.log('Resize UI updated'); // Update the window width for next time windowWidth = $(window).width(); clearTimeout(resizeUI); resizeUI = setTimeout(resetUI, 400); } }); function resetUI() { //Mobile if ($('.results-filter-button-overlay').css('position') === 'fixed') { //console.log('#Mobile mode on!'); //resetSearchOverlay(); if (!$('#header-search').hasClass('search-visible')) { resetSearchOverlay(); resetDynamicFilter(); //$('#cityPostalCodeSpecial').removeClass('wb-inv'); } if (localStorage) { //Reset Filters no matter what if (localStorage.getItem('functionResultFilter') === 'active' ) { //console.log('#ResetUI: functionResultFilter ACTIVE'); $('.command-result-filter-overlay').removeClass('active').attr('aria-expanded','true');; $('.results-content').removeClass('filter-visible').addClass('filter-hide'); //$('.command-result-filter-overlay').html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Filters'); if (!$('.command-result-filter-overlay').hasClass('options')) { $(this).html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Filters'); } else { $(this).html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Options'); } localStorage.setItem('functionResultFilter', 'disabled'); } else if (localStorage.getItem('functionResultFilter') === 'disabled' ) { //console.log('#ResetUI: functionResultFilter DISABLED'); $('.command-result-filter-overlay').removeClass('active').attr('aria-expanded','true');; $('.results-content').addClass('filter-hide').removeClass('filter-visible'); //$('.command-result-filter-overlay').html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Filters'); /* if (!$('.command-result-filter-overlay').hasClass('options')) { $(this).html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Filters'); } else { $(this).html('<span class="fal fa-sliders-h" aria-hidden="true"></span> Options'); } */ } // Sort by if (localStorage.getItem('functionSortBy') === null) { //First time user //console.log('sort null'); resetSortBy(); } else { if (localStorage.getItem('functionSortBy') === 'active' ) { activateSortBy(); //console.log('sort active'); } else if (localStorage.getItem('functionSortBy') === 'disabled' ) { if (!$('#header-search').hasClass('search-visible')) { resetSortBy(); //$('#cityPostalCodeSpecial').removeClass('wb-inv'); } //console.log('sort disabled'); } } } setTimeout(filterTaller, 300); } //Desktop if ($('.results-filter-button-overlay').css('position') === 'relative') { //console.log('#Desktop mode on!'); if (localStorage) { if (localStorage.getItem('functionResultFilter') === null) { //First time user localStorage.setItem('functionResultFilter', 'active'); showFilter(); } else { if (localStorage.getItem('functionResultFilter') === 'active' ) { //console.log('filter active!'); showFilter(); } else if (localStorage.getItem('functionResultFilter') === 'disabled' ) { //console.log('filter inactive!'); showFilter(); } } // Sort by if (localStorage.getItem('functionSortBy') === null) { //First time user resetSortBy(); } else { if (localStorage.getItem('functionSortBy') === 'active' ) { resetSortBy(); } else if (localStorage.getItem('functionSortBy') === 'disabled' ) { resetSortBy(); } } if (!$('#header-search').hasClass('search-visible')) { //console.log('ok header offf'); //$('#cityPostalCodeSpecial').addClass('wb-inv'); } } else { $('.results-content').addClass('filter-visible').removeClass('filter-hide'); if ($('.results-list-wrapper').hasClass("col-md-12")) { $('.results-list-wrapper').removeClass('col-md-12').addClass('col-md-9'); } // Sort by resetSortBy(); } resetSortBy(); resetSearchOverlay(); resetDynamicFilter(); setTimeout(filterTaller, 300); //showFilter(); } if ($('.results-content').hasClass('filter-hide')) { //console.log('#Desktop mode: filter-hide'); $("#results-filter-wrapper").addClass("invisible"); } else if ($('.results-content').hasClass('filter-visible')) { //console.log('#Desktop mode: filter-visible'); $("#results-filter-wrapper").removeClass("invisible"); } } //Mobile - Search Overlay Button $(document).on('click', '.command-search-overlay', function(event) { //console.log('search mobile CLICK'); hideFilter(); $("body").toggleClass("noScroll"); $('#header-search').toggleClass('search-visible'); $('main').toggleClass('search-visible'); $('.command-search-overlay').toggleClass('active'); $('.command-search-overlay').toggleClass('btn-primary btn-default'); resetSortBy(); if ($('#header-search').hasClass("search-visible")) { //$('#cityPostalCodeSpecial').removeClass('wb-inv'); if ($('.searchString').length) { $('.searchString').focus(); } /* if ($('#searchStringPseudo').length) { $('#searchStringPseudo').focus(); } */ $('.results-filter-button-overlay, .search-input-content').addClass('noBorder'); //console.log('search mobile SHOW!'); $(this).find('.text').text("Close"); $(this).find('.far').removeClass('fa-search').addClass('fa-times'); } else { if (!$('#cityPostalCodeSpecial').hasClass('wb-inv')) { //console.log('huh'); $('#cityPostalCodeSpecial').addClass('wb-inv'); } $('.results-filter-button-overlay, .search-input-content').removeClass('noBorder'); //console.log('search mobile HIDE!'); $(this).find('.text').text("Search"); $(this).find('.far').removeClass('fa-times').addClass('fa-search'); } //$('html, body').animate({ scrollTop: $('#jobSearchBar').offset().top }, '500'); return false; //e.preventDefault(); }); //Activate Filter $(document).on('click', '.command-result-filter-overlay', function(event) { var filterButton = $(this); resetSearchOverlay(); resetSortBy(); var courseSearch = false; if (courseSearch) { checkSelectedFilter(); } $("body").removeClass("noScroll"); $(this).toggleClass('active'); if ($(this).hasClass('active')) { sessionStorage.scrollTop = $(window).scrollTop(); //console.log('Scroll position: '+$(window).scrollTop()); } $('.results-content').toggleClass('filter-visible filter-hide'); if ($('.command-result-sortby-overlay').hasClass("active")) { $('.results-filter-button-overlay').addClass('noBorder'); } else { $('.results-filter-button-overlay').removeClass('noBorder'); } if ($('.results-content').hasClass('filter-visible')) { $(this).attr('aria-expanded','true'); //console.log('Display Filter!'); $('.skip-to-filters').show(); if ($('.results-filter-button-overlay').css('position') === 'fixed') { if ($(this).parent('.results-filter-button-overlay')) { //console.log('mobile go to filter top'); $('html, body').animate({ scrollTop: $('#results-filter-wrapper').offset().top }, 'fast'); } } if (localStorage) { //console.log('#Activate filter button: functionResultFilter active'); localStorage.setItem('functionResultFilter', 'active'); } } else if ($('.results-content').hasClass('filter-hide')) { $(this).attr('aria-expanded','false'); $('.skip-to-filters').hide(); if ($('.results-filter-button-overlay').css('position') === 'fixed') { if ($(this).parent('.results-filter-button-overlay')) { //console.log('!No filter - mobile go to result top'); if (sessionStorage.scrollTop != "undefined") { $(window).scrollTop(sessionStorage.scrollTop); //console.log('Old scroll position: '+$(window).scrollTop()); } //$('html, body').animate({ scrollTop: $('#results-list-content').offset().top }, 'fast'); } } if (localStorage) { //console.log('#Activate filter button: functionResultFilter disabled'); localStorage.setItem('functionResultFilter', 'disabled'); } } setTimeout(function(){ if ($('.results-content').hasClass('filter-hide')) { $("#results-filter-wrapper").addClass("invisible"); } else if ($('.results-content').hasClass('filter-visible')) { $("#results-filter-wrapper").removeClass("invisible"); } }, 200); $('.results-list-wrapper').removeClass('noanim'); $('.results-list-wrapper').toggleClass('col-md-12 col-md-9'); setTimeout(filterTaller, 300); }); //Activate Sort By $(document).on('click', '.command-result-sortby-overlay', function(event) { resetSearchOverlay(); hideFilter(); $("body").removeClass("noScroll"); $('main').toggleClass('sortby-visible'); $('.command-result-sortby-overlay').toggleClass('active'); if ($('.command-result-sortby-overlay').hasClass("active")) { if ($('.results-sortby-group').css('display') === 'none') { //console.log('.results-sortby-group is currently hidden'); //console.log('.results-sortby-group SHOW!'); localStorage.setItem('functionSortBy', 'active'); $('.results-filter-button-overlay').addClass('noBorder'); $('.results-sortby-group').addClass('sortby-group-visible'); } } else { if ($('.results-sortby-group').css('display') === 'block') { //console.log('.results-sortby-group HIDE!'); localStorage.setItem('functionSortBy', 'disabled'); $('.results-filter-button-overlay').removeClass('noBorder'); $('.results-sortby-group').removeClass('sortby-group-visible'); } } }); $(document).on('click', '.results-sortby-group a.btn', function(event) { localStorage.setItem('functionSortBy', 'disabled'); }); $(document).on('click', '.overlay', function(event) { if ($(this).css('visibility') === 'visible') { resetSearchOverlay(); resetSortBy(); } }); setTimeout(filterTaller, 300); //Reset for Input Ranger Slider $('#jobSearchResultsJobSearchForm').submit( function(){ if (localStorage) { localStorage.setItem('functionSearchSubmit', 'true'); } }); //Input Ranger Slider Ouput Events if (localStorage) { if(!localStorage.getItem("functionRangeSliderOuputValue")){ var id,val; } else { if(!localStorage.getItem("functionSearchSubmit")){ //var id = localStorage.getItem('functionRangeSliderOuputID'); //var val = localStorage.getItem('functionRangeSliderOuputValue'); //$('#'+id).val(val); //Rely on JSF param var id,val; } else { if(localStorage.getItem("functionSearchSubmit") === 'true'){ localStorage.removeItem("functionRangeSliderOuputValue"); localStorage.removeItem("functionSearchSubmit"); } } } } //Input Range event var timeoutHandler = window.setTimeout(function() {;},1); activateRangeSlider(); //Floating label $('.float-input').on('focus blur change', function (e) { $(this).parents('.related-group').prev('label.control-label').find('.label').removeClass('focus-error').toggleClass('focus', (e.type === 'focus' || this.value.length > 0 )); if($(this).val()!=""){ //console.log('value'); $(this).parents('.related-group').prev('label.control-label').find('.label').removeClass('focus-error').addClass('focus', (e.type === 'focus' || this.value.length > 0 )); } else { //console.log('empty'); } }).trigger('focus blur change'); $('.float-input').on('focus blur change'); //event tracking for search $('#search-module').submit(function(e){ var label = []; //console.log(label); //check what the advanced search is about if($(".searchString").val()) label.push("Keyword"); if($("#pcode").val()) label.push("Job Number"); var flg = document.getElementsByName('flg'); for (var i = 0, length = flg.length; i < length; i++) { if (flg[i].checked) { label.push("Language"); break; } } var fper = document.getElementsByName("fper"); for (var i = 0, length = fper.length; i < length; i++) { if (fper[i].checked) { label.push("Period of Employment"); break; } } var fter = document.getElementsByName("fter"); for (var i = 0, length = fter.length; i < length; i++) { if (fter[i].checked) { label.push("Job Type"); break; } } var fss = document.getElementsByName("fss"); for (var i = 0, length = fss.length; i < length; i++) { if (fss[i].checked) { label.push("Education Level"); break; } } var fsrc = document.getElementsByName('fsrc'); for (var i = 0, length = fsrc.length; i < length; i++) { if (fsrc[i].checked) { label.push("Federal Jobs Filter"); break; } } var fjsf = document.getElementsByName('fjsf'); if(fjsf[0].checked) label.push("Student Job Filter"); var fet = document.getElementsByName('fet'); if(fet[0].checked) label.push("Non-Placement Agency Filter"); //var fgff = document.getElementsByName('fgff'); //if(fgff[0].checked) label.push("Government Funded Jobs Filter"); var fprov = document.getElementsByName("fprov"); for (var i = 0, length = fprov.length; i < length; i++) { if (fprov[i].checked) { label.push("PTs and Regions"); break; } } var fcat = document.getElementsByName("fcat"); for (var i = 0, length = fcat.length; i < length; i++) { if (fcat[i].checked) { label.push("Job Categories"); break; } } if($("select[name=fn]").val()) label.push("Job Titles"); //format result (always +',' to keep things as they are since the error was made at the begining...) var results = ''; for(var i=0,len=label.length;i<len;i++){ results+=label[i]+', '; } //push event _gaq.push(['_trackEvent', 'jobSearch', 'source : advancedSearchPage', results]); //console.log(results); }); // Economic Regions list is hidden by default $(".geoarea_list").hide(); // Show Economic Regions belonging to a P/T when this P/T is select $('input.select-pt').change(function() { if($(this).is(':checked')) { //console.log('Checked Province'); $(this).parent().find('.geoarea_list').show(); $(this).next('label').children('i').addClass('fa-minus-square').removeClass('fa-plus-square'); if ($(this).parent().find('.geoarea_list').find('input[id^="box-fgeo-"]').is(':checked')) { $(this).prop('checked', true); $(this).parent().find('.geoarea_list').find('input[id^="box-fgeo-"]').prop('checked', false); } } else { //console.log('Unchecked Province'); $(this).parent().find('.geoarea_list').hide(); $(this).next('label').children('i').addClass('fa-plus-square').removeClass('fa-minus-square'); if ($(this).parent().find('.geoarea_list').find('input[id^="box-fgeo-"]').is(':checked')) { //console.log('Cities are already checked!'); $(this).prop('checked', false); //console.log('Uncheck province!'); } } }); // Uncheck P/T when a Economic Region inside the P/T is selected $('input[id^="box-fgeo-"]').change(function() { //console.log('Cities Checked then Unchecked Province'); $(this).parents('.geoarea_list').parent().find('input.select-pt').prop('checked', false); }); var itself; $('.btn-apply').click( function() { externalJobLink(); $('#external-job-show').addClass('hide'); //var itself = false; }); //Apply $('#external-job-show').click( function(){ var itself = true; externalJobLink(); $('#external-job-show').addClass('hide'); return false; }); /* function externalJobLink() { if (!itself == true) { $('#external-job-details').attr('open',''); } $('#externalJobLink').animate({opacity:1}, 0, function(){ $(this).addClass('animated bounceIn'); setTimeout(function(){ $('#externalJobLink').focus(); }, 900); }); } */ /* Uh new Firefox supports details :O */ $('details summary').click( function() { setTimeout(filterTaller, 10); }); //Adjust height of the result page on hover $(".resultJobItem.jobSearchItem .results-nav").hover(function() { setTimeout(filterTaller, 10); }); $(document).on('click', '.resultJobItem', function() { sessionStorage.scrollTop = $(window).scrollTop(); //console.log('Open job - scroll position: '+$(window).scrollTop()); //$(this).trigger('click'); //return false; }); //Favourites button on search results page /* $('a.favourite').not('.jobposting').click( function(e) { if (!$(this).hasClass('saved')) { var removeUrl = $(this).attr('href').replace('addfavourite', 'removefavourite'); $(this).attr('href', removeUrl); $(this).addClass('saved'); $(this).find('.wb-inv').text("Favourited"); } else { var addUrl = $(this).attr('href').replace('removefavourite', 'addfavourite'); $(this).attr('href', addUrl); $(this).removeClass('saved'); $(this).find('.wb-inv').text("Save job posting"); } //e.preventDefault(); //Comment this line if default action needs to go through }); */ setTimeout(filterTaller, 300); /* $("[name='problem']").change( function() { var problemValue = $(this).val(); var redirectFormValue; if (problemValue === 'problem_employer') { redirectFormValue = "/support/reportproblemform" } else { redirectFormValue = "../jobsearch/" } $('#reportProblemJobPosting').attr('action', redirectFormValue); }); $('#reportProblemJobPosting .command-submit-pjp').click(function(){ $('#reportProblemJobPosting').submit(); }); */ //Report a problem with this job posting $(document).on('click', '.btn-report', function() { $('.job-posting-detail-common .gc-rprt-prblm-frm .options').removeClass('show').addClass('hide'); $('.job-posting-detail-common .gc-rprt-prblm-frm input[type=radio]').prop('checked', false); $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type=checkbox]').prop('checked', false); $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type=text]').val(''); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); }); //Radio options $('.job-posting-detail-common .gc-rprt-prblm-frm input[type=radio]').change( function() { var toggleOptions = $(this).data('reveal'); if($(this).is(':checked')) { $('.job-posting-detail-common .gc-rprt-prblm-frm .options').not(this).removeClass('show').addClass('hide'); $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type=checkbox]').prop('checked', false); $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type=text]').val(''); $('.job-posting-detail-common .gc-rprt-prblm-frm fieldset .form-group.options .other-textbox').val(''); $(toggleOptions).removeClass('hide').addClass('show'); if (!$(this).hasClass('hasOptions')) { //console.log('Radio selected'); //console.log('Enable submit button'); $('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').prop("value", "Report"); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } else { //console.log('Radio selected with reveal more'); //console.log('Disable submit button'); $('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').prop("value", "Submit"); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } } }); //Checkbox options $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').change( function() { //console.log('checkboxes function!'); //var checkedBoxes = $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').is(':checked'); var checkedBoxes = $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').is(':checked'); var checkedBoxesReveal = $('.job-posting-detail-common .gc-rprt-prblm-frm .options input.reveal[type="checkbox"]').is(':checked'); if ($(this).data('reveal')) { //console.log('@@@@@@@@@@@@@@@@@@@@@@@@@@'); //console.log('Checkbox with reveal more'); var toggleOptions = $(this).data('reveal'); // Check other checked boxes if ($(checkedBoxes)) { //console.log('1 - OTHER checkboxes are checked'); //console.log('OTHER checkboxes are checked & enable submit'); //$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } else { //console.log('No other checkboxes are checked'); //$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } // Checkbox with reveal is checked if ($(this).is(':checked')) { //console.log('Checkbox checked with text input & disabled submit'); $(toggleOptions).removeClass('hide').addClass('show'); $('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); $(this).parents('.checkbox').next('.options').find('.other-textbox').focus(); $(this).parents('.checkbox').next('.options').find('.other-textbox').on('keyup blur focus changes', function() { if (!$(this).val()) { ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); //console.log('Textarea is empty & disable submit'); } else { //console.log('Textarea has text & enable submit'); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } }); } else { //console.log('Checkbox reveal UNchecked'); $(this).parents('.checkbox').next('.options').find('.other-textbox').val(''); $(toggleOptions).removeClass('show').addClass('hide'); //$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } } else { //console.log('============================='); //console.log('Solo Checkbox'); if ($('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').is(':checked')) { //console.log('OTHER checkboxes are checked'); if ($('.job-posting-detail-common .gc-rprt-prblm-frm .options input.reveal[type="checkbox"]').is(':checked')) { //console.log('reveal is checked'); if (!$(this).parents('.options').find('.options').find('.other-textbox').val() == '') { //console.log('Text!'); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } else { //console.log('NO Text!'); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } } else { //console.log('No reveal is checked'); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } } else { //console.log('NO Checkboxes AT ALL!'); ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } if ($("#topic_20").is(':checked')){ if( (!checkedBoxes) || $('.other-textbox-20').val().length < 5){ ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } else { ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } } } }).change(); //$('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').change(); $('.other-textbox-20').on('keyup', function(){ var checkedBoxes = $('.job-posting-detail-common .gc-rprt-prblm-frm .options input[type="checkbox"]').is(':checked'); if ((!checkedBoxes) || ($('.other-textbox-20').val().length < 5)) { ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').addClass('disabled').prop("disabled", true); } else { ///$('.job-posting-detail-common .gc-rprt-prblm-frm .btn-submit').removeClass('disabled').prop("disabled", false); } }); $(document).on('click', '#toggleRecentSearch', function(event) { if ($(this).parent().is('#recent-search')) { $(this).parent().toggleClass('show'); $(this).toggleClass('active'); } if ($(this).parent().hasClass('show')) { $('.listRecentSearch li a').first()[0].focus(); } return false; }); }); function saveLoginRedirectURIListener(e) { var jobid = $(e).data("jobid"); var redirect = '/jobsearch/addfavourite/'+jobid; sessionStorage.removeItem('loginRedirectURI'); sessionStorage.setItem('loginRedirectURI', redirect); //alert('redirect is: '+redirect); //console.log('favourite - non-logged in and guest'+ redirect); //return false; } function saveLoginRedirectURIListenerGeneric(e) { var redirect = ''+$(e).data("redirect"); sessionStorage.removeItem('loginRedirectURI'); sessionStorage.setItem('loginRedirectURI', redirect); //alert('redirect is: '+redirect); //console.log('favourite - non-logged in and guest'+ redirect); //return false; } function filterTaller() { //console.log('filterTaller'); var filterBox = $('.results-filter-wrapper').height(); var resultBox = $('.results-list-wrapper').height(); if ($('.search-input-content').css('display') === 'none') { //console.log('filterTaller display none - Mobile!'); $('section.results-content').css('height','auto'); } else { //console.log('filterTaller display block - Desktop!'); if ($('section.results-content').hasClass('filter-visible')) { if ($('.results-filter-button-overlay').css('position') === 'relative') { if (filterBox > resultBox) { //console.log('filter box is taller: '+filterBox+' result box is: '+resultBox); $('section.results-content').height(filterBox); } } if (resultBox > filterBox) { //console.log('result box is taller: '+resultBox+' filter box is: '+filterBox); $('section.results-content').css('height','auto'); } } else if ($('section.results-content').hasClass('filter-hide')) { //console.log('no filter box'); $('section.results-content').css('height','auto'); } } } //}); $(document).on( "wb-ready.wb-details", "summary", function( event ) { $(document).on('click', 'details summary', function() { setTimeout(filterTaller, 0); }); function filterTaller() { var filterBox = $('.results-filter-wrapper').height(); var resultBox = $('.results-list-content').height(); if ($('section.results-content').hasClass('filter-visible')) { if ($('.results-filter-button-overlay').css('position') === 'relative') { if (filterBox > resultBox) { //console.log('filter box is taller: '+filterBox); $('section.results-content').height(filterBox); } } if (resultBox > filterBox) { //console.log('result box is taller: '+resultBox); $('section.results-content').css('height','auto'); } } else if ($('section.results-content').hasClass('filter-hide')) { //console.log('no filter box'); $('section.results-content').css('height','auto'); } } setTimeout(filterTaller, 300); }); function saveJob(data,jobid) { //console.log('fetch'); var thisJobID = $("input[name='jobid'][value="+jobid+"]"); var thisJobIDfav = thisJobID.nextAll('.favourite'); //console.log('element ID: '+thisJobIDfav); if (data.status === 'begin') { //Start loading animation //console.log('begin'); $(thisJobIDfav).addClass('working'); } else if (data.status === 'complete') { //console.log('complete'); //End loading animation $(thisJobIDfav).removeClass('working'); /* $(thisJobIDfav).addClass('done').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ $(thisJobIDfav).removeClass('done'); console.log('finito!'); }); */ } else if (data.status === 'success') { //console.log('Done!'); } } // favourite actions function setLoginRedirectURIFavourite(e) { //var form = $('#loginForm'); var jobid = $(e).attr("data-jobid"); var redirect = '/jobsearch/addfavourite/'+jobid; //var inputredirectURI = form.find('#loginForm\\:input-redirectURI'); //inputredirectURI.val(redirect); // Save data to sessionStorage sessionStorage.removeItem('loginRedirectURI'); sessionStorage.setItem('loginRedirectURI', redirect); //console.log('Redirect: '+redirect); } function removeArticle(e) { var article = $(e).parents('article'); article.remove(); } function toggleFavourite(e) { $(e).addClass('working'); var callingmethod = 'PUT'; if ( $(e).hasClass('saved') ) { callingmethod = 'DELETE'; } //requestObject.lang = document.documentElement.lang; $.ajax({ url: '/jbaction/FavouriteJob/'+$(e).data('jobid'), type: callingmethod, dataType: 'json', success: function(data,status) { if ($(e).hasClass('saved')) { $(e).removeClass('saved'); $(e).html('<span class="wb-inv">Favourite</span>'); } else { $(e).addClass('saved'); $(e).html('<span class="wb-inv">Favourited</span>'); } // $(e).removeClass('working'); }, error: function( jqXHR,status) { $(e).removeClass('working'); if (jqXHR.status==401) { setLoginRedirectURIFavourite(e); var redirect = '/login'; window.location.href = redirect; } else if (jqXHR.status==403) { // redirect intructions var redirect = window.location.pathname; setLoginRedirectURI(redirect); // redirect var redirect = '/reg/instructions'; window.location.href = parenturl; } }, complete: function(jqXHR,status) { $(e).removeClass('working'); } }); } function recordApply(e) { $(e).addClass('working'); var callingmethod = 'PUT'; $.ajax({ url: '/jbaction/recordApply/'+$(e).data('jsjobid'), type: callingmethod, dataType: 'json', complete: function(jqXHR,status) { $(e).removeClass('working'); } }); } function actiontodataurl(e) { var dataurl = $(e).data("url"); var form = $(e).closest('form'); form.attr('action', dataurl); form.submit(); } $(document).click(function(event) { if($('#recent-search').hasClass("show")) { $('#recent-search').removeClass('show'); $("#toggleRecentSearch").removeClass('active'); //console.log('remove show'); } }); function activateRangeSlider() { $("input[type='range']").on('input change',function(e) { /* var as1 = $(e.target).attr('data-sign1'); var as2 = $(e.target).attr('data-sign2'); */ var id = $(e.target).attr('id'); var form = $(e.target).parents('form:first'); var output = form.find('.output'); var value = parseFloat($(e.target).val()); updateRangeSliderOuput(output,id,value); //console.log('range input change!'); //alert('range input change!'); }); $("input[type='range']").change(); /* $("input[type='range']").on('keypress',function(e) { var id1 = $(e.target).attr('id'); var val1 = $(e.target).val(); //alert(val1); updateRangeSliderOuput(id1,val1); }); $("input[type='range']").change(); */ $(document).on('click', '#decrease-slider-button', function(e) { var form = $(e.target).parents('form:first'); var output = form.find('.output'); var slider = form.find("input[type='range']"); var step = parseFloat(slider.attr('step')); var minvalue = parseInt(slider.attr('min')); var value = parseFloat(slider.val()); value = value-step if (value<minvalue) { value=minvalue; } slider.val(value); updateRangeSliderOuput(output,slider.attr('id'),value); //slider.change(); var querystring = form.find("#locationstring-querystring"); if ( typeof querystring !== 'undefined') { var formaction = form.attr('action'); var posQuest = formaction.indexOf("?"); if (posQuest>=0) { formaction = formaction.substring(0,posQuest); } var qstringval = querystring.val(); var newqstringval = qstringval.replace(/(^|&)d=[0-9]+(&|$)/g,'$1d='+value+'$2'); console.log("newqstringval:"+newqstringval); form.attr('action',formaction+'?'+newqstringval); } window.clearTimeout(timeoutHandler); timeoutHandler = setTimeout(function(){ form.submit(); //slider.focus(); }, 2000); }); $(document).on('click', '#increase-slider-button', function(e) { var form = $(e.target).parents('form:first'); var output = form.find('.output'); var slider = form.find("input[type='range']"); var step = parseFloat(slider.attr('step')); var maxvalue = parseInt(slider.attr('max')); var value = parseFloat(slider.val()); value = value+step if (value>maxvalue) { value=maxvalue; } slider.val(value); updateRangeSliderOuput(output,slider.attr('id'),value); //slider.change(); var querystring = form.find("#locationstring-querystring"); if ( typeof querystring !== 'undefined') { var formaction = form.attr('action'); var posQuest = formaction.indexOf("?"); if (posQuest>=0) { formaction = formaction.substring(0,posQuest); } var qstringval = querystring.val(); var newqstringval = qstringval.replace(/(^|&)d=[0-9]+(&|$)/g,'$1d='+value+'$2'); console.log("newqstringval:"+newqstringval); form.attr('action',formaction+'?'+newqstringval); } window.clearTimeout(timeoutHandler); timeoutHandler = setTimeout(function(){ form.submit(); //slider.focus(); }, 2000); }); $('input[type=range]').on('mouseup touchend', function(e) { var form = $(e.target).parents('form'); var querystring = form.find("#locationstring-querystring"); if ( typeof querystring !== 'undefined') { var slider = form.find("input[type='range']"); var value = parseFloat(slider.val()); var formaction = form.attr('action'); var posQuest = formaction.indexOf("?"); if (posQuest>=0) { formaction = formaction.substring(0,posQuest); } var qstringval = querystring.val(); var newqstringval = qstringval.replace(/(^|&)d=[0-9]+(&|$)/g,'$1d='+value+'$2'); form.attr('action',formaction+'?'+newqstringval); } window.clearTimeout(timeoutHandler); timeoutHandler = setTimeout(function(){ form.submit(); }, 1000); }); $('input[type=range]').on('keyup', function(e) { var key = e.which; // Enter key if( (key == 13) ) { var form = $(e.target).parents('form'); var querystring = form.find("#locationstring-querystring"); if ( typeof querystring !== 'undefined') { var slider = form.find("input[type='range']"); var value = parseFloat(slider.val()); var formaction = form.attr('action'); var posQuest = formaction.indexOf("?"); if (posQuest>=0) { formaction = formaction.substring(0,posQuest); } var qstringval = querystring.val(); var newqstringval = qstringval.replace(/(^|&)d=[0-9]+(&|$)/g,'$1d='+value+'$2'); form.attr('action',formaction+'?'+newqstringval); } form.submit(); return false; } return false; }); } //Input Range Slider function function updateRangeSliderOuput(output,id,val) { //console.log('slider function'); var value,label,details; //alert("ID " + id + " Value " + val); //Distance radius control if (id === "dist") { var details = '<span class="wb-inv">kilometers: selected distance</span>'; var label = '<span class="wb-inv">Current distance of</span>'; var value = '<span>'+val.toLocaleString('en-CA')+'</span>'; //var display_value = '<span aria-hidden=\'true\'>'+val+'</span>'; } /* else if (id === "salary") { var details = '<span class="wb-inv">thousand dollars is chosen</span>'; var label = '<span class="wb-inv">Current annual salary of</span>'; } */ if (localStorage) { //console.log('Function SAVED the values!'); localStorage.setItem('functionRangeSliderOuputValue', val); localStorage.setItem('functionRangeSliderOuputID', id); } //console.log('value: '+val); //Update display label //$('span[class="output amount-dist"]').html(value); output.text(val.toLocaleString('en-CA')); } /* function toggleFavourite(e) { $(e).addClass('working'); var requestObject = new Object(); requestObject.job2Id = $(e).data("jobid"); requestObject.jsJobId = $(e).data("jobid"); requestObject.applied = 'false'; if ( $(e).hasClass('saved') ) { requestObject.methodName = 'removeFavoriteJob'; } else { requestObject.methodName = 'addFavoriteJob'; } requestObject.lang = document.documentElement.lang; $.ajax({ url: '/jobbankservlet', type: 'POST', dataType: 'json', data: { methodName : requestObject.methodName, jsJobId: $(e).data('jobid') }, success: function(data,status) { if ($(e).hasClass('saved')) { $(e).removeClass('saved'); $(e).html('<span class="wb-inv">Favourite</span>'); } else { $(e).addClass('saved'); $(e).html('<span class="wb-inv">Favourited</span>'); } $(e).removeClass('working'); }, error: function( jqXHR,status) { $(e).removeClass('working'); if (jqXHR.status==401) { setLoginRedirectURIFavourite(e); var redirect = '/login'; window.location.href = redirect; } else if (jqXHR.status==403) { // redirect intructions var redirect = window.location.pathname; setLoginRedirectURI(redirect); // redirect var redirect = '/reg/instructions'; window.location.href = parenturl; } }, complete: function(jqXHR,status) { jqXHR; } }); } */ $(document).ready(function() { $('.select-and-go').on('click', function(e) { var form = $(this).parents('form:first'); var selectElement = form.find('select:first'); if (selectElement[0].value) { window.location = selectElement[0].value; } return false; }); }); //]]> </script> <script type="text/javascript"> //<![CDATA[ initlocalstorageWageFunctions = function() { //console.log('######### initlocalstorageWageFunctions'); if (localStorage) { if (localStorage.getItem('wageType') === null) { //First time user //console.log('######### wageType null'); $("#wageannual-level").show(); $("#wagehourly-level").hide(); $("#wage-type-annual").prop("checked", true); } else if (localStorage.getItem('wageType') === 'annual') { //console.log('######### wageType annual'); $("#wageannual-level").show(); $("#wagehourly-level").hide(); $("#wage-type-annual").prop("checked", true); $("#wage-type-hourly").prop("checked", false); } else if (localStorage.getItem('wageType') === 'hourly' ) { //console.log('######### wageType hourly'); $("#wageannual-level").hide(); $("#wagehourly-level").show(); $("#wage-type-hourly").prop("checked", true); $("#wage-type-annual").prop("checked", false); } } } initlocalstorageWageFunctions(); function afterScrolldownPass(xhr, status, args) { var jobarticle = args.jobarticle; $("#result_block").on("scroll", function() { var scrollHeight = $("#result_block").height(); var scrollPosition = $("#result_block").scrollTop(); var scrollFullHeight = $("#result_block")[0].scrollHeight; if ((scrollFullHeight - scrollPosition -1) < scrollHeight) { // send new info to bean scrolldownjobSearchBean ([ { name : 'url', value : '1' } ]); } }); } function setRedirectURI(e) { var form = $(e).parents('form:first'); var jobidinput = form.find('input[name="jobid"]'); var jobid = jobidinput.val(); var formid = form.attr('id').replace(/:/g,"\\:"); var redirect = '/jobsearch/addfavourite/'+jobid; var inputredirectURI = form.find('#'+formid+'\\:input-redirectURI'); inputredirectURI.val(redirect); } /* function removeAnchorHistory(e) { var href = window.location.pathname; href = href+window.location.search; var hasharticle = $(e).parent('article').attr('id'); href = href+'#'+hasharticle; window.history.replaceState({page:1},document.title,href); } */ var morepageProcessing = false; function showmore() { $.ajax({ url: '/jobsearch/job_search_loader.xhtml', dataType: 'html', async: true, beforeSend: function( jqXHR,settings) { morepageProcessing = true; $("#moreresultbutton").attr("disabled", true); $('#morepage').addClass('working'); }, success: function(data) { $('#morepage').replaceWith(data); }, error: function(data) { $('#morepage').removeClass('working'); }, complete: function() { morepageProcessing = false; $("#moreresultbutton").attr("disabled", false); } }); } $(document).on('click', '#moreresultbutton', function(event) { showmore(); }); //Toggle Filter List - Check if filter list is visible or hidden function checkToggleFilterList() { //console.log('togglefilterlist function'); var filterNum = 0; var allids = []; //$('div.results-filter-content section').find('ul.list-group').hide(); $('div.results-filter-content section').find('.list-group').not('.stay-open').addClass('close'); $('div.results-filter-content section h3').not('.nonActive').attr({"tabindex":"0", "aria-expanded": "false", "aria-haspopup":"true", "data-toggle":"dropdown"}).remove('.toggleFilterList').append(' <span class="toggleFilterList"><span class="fa fa-plus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to expand filters</span></span>'); var hasLooped = false; //Generate IDs for Filter List sections if(!hasLooped){ $('div.results-filter-content section').each(function(){ //console.log('how many categories?'); filterNum++; var newID='filterList'+filterNum; //$(this).removeAttr('id'); $(this).attr('id',newID); $(this).val(filterNum); //Set local storage if ($(this).children('h3').attr('aria-expanded') == 'true') { var ids = $(this).map(function() { return this.id; }).get().join(); allids.push(ids); //console.log('open: '+JSON.stringify(allids)); if (localStorage) { localStorage.setItem("open", JSON.stringify(allids)); } } else if ($(this).children('h3').attr('aria-expanded') == 'false') { var ids = $(this).map(function() { return this.id; }).get().join(); allids.push(ids); //console.log('close: '+JSON.stringify(allids)); if (localStorage) { localStorage.removeItem("remove", JSON.stringify(allids)); } } if (localStorage) { if (localStorage.getItem('open') === null) { //console.log('First time user'); allids = []; var defaultListFilter = ['filterList1']; localStorage.setItem('open', JSON.stringify(defaultListFilter)); if ($('#'+defaultListFilter.join(', #')).find('.list-group').hasClass('close')) { $(this).find('.list-group').toggleClass('close open'); $(this).find('h3').not('.nonActive').attr({"tabindex":"0", "aria-expanded": "true", "aria-haspopup":"true", "data-toggle":"dropdown"}).find('.toggleFilterList').html(' <span class="fa fa-minus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to collapse filters</span>'); } } else { var openFilterList = localStorage.getItem("open"); openFilterListId = jQuery.parseJSON(openFilterList); openFilters = $('#'+openFilterListId.join(', #')); if ($(openFilters).find('.list-group').hasClass('close')) { $(this).find('.list-group').toggleClass('close open'); } if ($(openFilters).find('.list-group').hasClass('open')) { if ($(openFilters).find('h3').has('span.fa.fa-plus').length) { $(this).find('h3').attr({"tabindex":"0", "aria-expanded": "true", "aria-haspopup":"true", "data-toggle":"dropdown"}).find('.toggleFilterList').html(' <span class="fa fa-minus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to collapse filters</span>'); } } hasLooped = true; } } else { //console.log('no localstorage'); allids = []; var defaultListFilter = ['filterList1','filterList2','filterList3','filterList4','filterList5','filterList6','filterList7','filterList8','filterList9','filterList10','filterList11','filterList12','filterList13']; if ($('#'+defaultListFilter.join(', #')).find('.list-group').hasClass('close')) { $(this).find('.list-group').toggleClass('close open'); $(this).find('h3').attr({"tabindex":"0", "aria-expanded": "true", "aria-haspopup":"true", "data-toggle":"dropdown"}).find('.toggleFilterList').html(' <span class="fa fa-minus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to collapse filters</span>'); } } }); } } checkToggleFilterList(); //Toggle Filter List - Click function $(document).on('click', 'div.results-filter-content section h3:not(.nonActive)', function(event) { //console.log('filter cat'); toggleFilterList($(this)); }); //Toggle Filter List - Keyboard function $(document).on('keydown', 'div.results-filter-content section h3:not(.nonActive)', function(event) { // Enter key if (event.keyCode == 13) { toggleFilterList($(this)); } setTimeout(filterTaller, 0); }); //Toggle Filter List - Function function toggleFilterList(thisObj) { //console.log('toggleFilterList'); var allids = []; //thisObj.closest('section').find('ul.list-group').toggle(); if (thisObj.closest('section').find('.list-group').hasClass('open')) { //console.log('close it!'); thisObj.closest('section').find('.list-group').toggleClass('open close'); setTimeout(filterTaller, 300); } else if (thisObj.closest('section').find('.list-group').hasClass('close')) { //console.log('open it!'); thisObj.closest('section').find('.list-group').toggleClass('close open'); } else if (thisObj.closest('section').find('.list-group').hasClass('stay-open')) { thisObj.closest('section').find('.list-group').addClass('open'); } else { //console.log('open it anyways!'); thisObj.closest('section').find('.list-group').addClass('open'); } //filterTaller; setTimeout(filterTaller, 300); //Hidden //if (thisObj.closest('section').find('ul.list-group').is(':hidden')) { if (thisObj.closest('section').find('.list-group').hasClass('close')) { thisObj.attr({ "aria-expanded": "false" }); thisObj.find('span.toggleFilterList').html(' <span class="fa fa-plus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to expand filters</span>'); var filterSectionId = thisObj.parent().attr('id'); //console.log('You closed: '+filterSectionId); if (localStorage) { if(!localStorage.getItem("open")){ localStorage.setItem("open", "[]"); } var allids = JSON.parse(localStorage.getItem('open')); for (i=0;i<allids.length;i++) if (allids[i] == filterSectionId) allids.splice(i,1); localStorage["open"] = JSON.stringify(allids); //console.log('Current Open Set!: '+JSON.stringify(allids)); } } //Visible //if (thisObj.closest('section').find('ul.list-group').is(':visible')) { if (thisObj.closest('section').find('.list-group').hasClass('open')) { thisObj.attr({ "aria-expanded": "true" }); thisObj.find('span.toggleFilterList').html(' <span class="fa fa-minus" aria-hidden="true"></span> <span class="wb-inv">Clickable heading, select to collapse filters</span>'); var filterSectionId = thisObj.parent().attr('id'); //console.log('You opened: '+filterSectionId); if (localStorage) { if (localStorage.getItem('open') === null) { allids = []; } else { if(!localStorage.getItem("open")){ localStorage.setItem("open", "[]"); } allids = JSON.parse(localStorage.getItem('open')); } } var exist = false; for(var i = 0; i < allids.length; i++) if(allids[i] == filterSectionId) { exist = true; break; } if (!exist) { allids.push(filterSectionId); if (localStorage) { localStorage.setItem('open', JSON.stringify(allids)); //console.log('Current Open Set: '+JSON.stringify(allids)); } } else { return false; } } } $(document).on('click', '#wage-type-annual', function(event) { if ($(this).is(":checked")) { console.log('chosen wageType annual'); localStorage.setItem('wageType', 'annual'); $("#wageannual-level").show(); $("#wagehourly-level").hide(); $("#wage-type-hourly").prop("checked", false); } else { $("#wageannual-level").hide(); $("#wagehourly-level").show(); } }); $('#wage-type-annual').change(); $(document).on('click', '#wage-type-hourly', function(event) { if ($(this).is(":checked")) { console.log('chosen wageType hourly'); localStorage.setItem('wageType', 'hourly'); $("#wageannual-level").hide(); $("#wagehourly-level").show(); $("#wage-type-annual").prop("checked", false); } else { $("#wageannual-level").show(); $("#wagehourly-level").hide(); } }); $('#wage-type-hourly').change(); $(document).on('click', 'div.radio label.labelControl', function(event) { $(this).prev("input").mousedown(); //console.log('label click'); }); // param city_id function updateLocationParam(e) { $('#city_id-radiusmap').val(e); } function removeInternationalFilter() { $('.removeInternationalFilter').click(); } function updateResultWithUrl(e) { //console.log('caller is ' + updateResultWithUrl.caller); var dataurl = $(e).data("url"); var filterid = $(e).attr("id"); if (filterid == "emplgroupitem_5" && !dataurl.includes("fglo")){ removeInternationalFilter(); } var filtername = $(e).attr("name"); var page = '/jobsearch/jobsearch'; var reference = page+'?'+dataurl; var form = $('#ajaxupdateform')[0]; //console.log('reference: '+reference); $('#locationstring-querystring').val(dataurl); // advanced link $('#advanced-search-button').attr('href','/jobsearch/advancedsearch?'+dataurl); $('#advanced-search-button-filters').attr('href','/jobsearch/advancedsearch?'+dataurl); form.action = '?'+dataurl; jsf.ajax.request(form,event,{ render:'ajaxupdateform', onevent:function(data) { if (data.status === 'begin') { loadingShow(); } if (data.status === 'complete') { loadingHide(); } if (data.status === 'success') { $('.results-content.filter-visible .results-filter-button-overlay').css('display', 'inline-block'); $('#results-filter-wrapper').addClass('noanim'); setTimeout(filterTaller, 0); history.pushState({ 'href': reference }, 'Title of the page', reference); // reset map var zoomlevel = $('#locationstring-mapzoomlevel').val(); var mapCenterY = $('#locationstring-centermap-y').val(); var mapCenterX = $('#locationstring-centermap-x').val(); var radius = $('#locationstring-radius').val()*1000; var circley = $('#locationstring-geometry-y').val(); var circlex = $('#locationstring-geometry-x').val(); cityref = dataurl; radiusmap = L.map('radiusmap', { crs: crs }).setView([mapCenterY,mapCenterX], zoomlevel); if ($(window).width() > 992) { L.tileLayer(mapurl, { minZoom: 1, maxZoom: 13, attribution: '<a href="https://www.nrcan.gc.ca/earth-sciences/geography/topographic-information/free-data-geogratis/licence/17285" title="Canada Base Map © Natural Resources Canada" class="style-scope web-map">Canada Base Map © Natural Resources Canada</a>' }).addTo(radiusmap); } if (circley) { L.circle([circley, circlex], { color: 'red', fillColor: '#f03', fillOpacity: 0.1, interactive: false, radius: radius }).addTo(radiusmap); } /*L.solrHeatmap('/core/job2_'+inputlang, { // Solr field with geospatial data (should be type Spatial Recursive Prefix Tree) field: 'latlng_rpt', q:$('#locationstring-q').val(), fq:$('#locationstring-fq').val(), colors:['#53649d','#9ea9cc'], // Set type of visualization. Allowed types: 'geojsonGrid', 'clusters' Note: 'clusters' requires LeafletMarkerClusterer type: 'heatmap', // Inherited from L.GeoJSON // onEachFeature: onEachFeature }).addTo(radiusmap);*/ radiusmap.on('popupopen',function(popup) { // shift focus to the popup when it opens $(popup.popup._container).find('.my-popup-content').attr('tabindex','-1').focus(); // move the close button to the end of the popup content so screen readers reach it // after the main popup content, not before var close = $(popup.popup._container).find('.leaflet-popup-close-button'); $(popup.popup._container).find('.leaflet-popup-close-button').remove(); close.attr('title','Close item'); $(popup.popup._container).append(close); }); // return focus to the icon we started from before opening the pop up radiusmap.on('popupclose',function(popup) { //$(popup.popup._source._icon).focus(); }); radiusmap.on('click',function(popup) { var provrqq = ''; renderNearbyCity(popup.latlng, provrqq); }); // reset city autocomplete and querystring var obj = $('#location-radiusmap'); new taCityprovSuggestFunctionsV2(obj); var citysuggestobject = $('#locationstring-radiusmap'); citysuggestobject.on('typeahead:select', function(evt, item) { var form = $('#locationstring-radiusmap').parents('form'); window.clearTimeout(timeoutHandler); timeoutHandler = setTimeout(callLocationUpdate(item), 1000); }); $('#locationstring-querystring').val(dataurl); checkToggleFilterList(); // TODO Slider action activateRangeSlider(); // reestablish focus on the clicked item $("#"+filterid).focus(); if (filtername === 'locationfacetgroup') { var showingText = "Showing"; var hidingText = "Hiding"; var cityLabel = "Cities"; if ( $("#majorcity-type").length ) { $("#liveRegionFilterCity").text(showingText+" "+cityLabel); } else { $("#liveRegionFilterCity").text(hidingText+" "+cityLabel); } } else { $("#liveRegionFilterCity").text(""); } $(".wb-lbx").trigger("wb-init.wb-lbx"); initlocalstorageWageFunctions(); } }, 'dataurl':dataurl }); var dump = 'dump'; } function callLocationUpdate(item) { var e = $('#locationstring-radiusmap'); var cityId = item.city_id; if (cityId==0) { e.data("url",e.data("url")+"&fprov="+item.prov_cd); } else { e.data("url",e.data("url")+"&mid="+item.city_id); } updateResultWithUrl(e); } /* function callLocationUpdate(item) { // TODO make a good url; form.action = '?'+dataurl; var e = $('#locationstring-radiusmap'); e.data("url",e.data("url")+"&mid="+item.city_id); updateResultWithUrl(e); //form.submit(); }*/ var cancelTimer; function loadingShow(event){ $('#loading').removeClass("done").fadeIn('fast'); cancelTimer = setTimeout(function(){ $('.cancel').show(); }, 30000); } function loadingHide(){ $('#loading').addClass("done").fadeOut('fast'); clearTimeout(cancelTimer); } // for autocomplete var timeoutHandler = window.setTimeout(function() {;},1); $.fn.isInViewport = function() { var elementTop = $(this).offset().top; var elementBottom = elementTop + $(this).outerHeight(); var viewportTop = $(window).scrollTop(); var viewportBottom = viewportTop + $(window).height(); return elementBottom > viewportTop && elementTop < viewportBottom; }; //}); if (localStorage) { if (localStorage.getItem('volunteerActivityType')) { var activityType = localStorage.getItem('volunteerActivityType'); //console.log('ls: '+activityType); localStorage.removeItem('volunteerActivityType'); $('#activityTypeSelect').find('.' + activityType).attr('selected', 'selected'); } } $(document).ready(function() { var url_param = window.location.search.substr(1).toString(); const filteredParams = new URLSearchParams(url_param); if (typeof URLSearchParams !== 'undefined') { filteredParams.delete("searchstring"); filteredParams.delete("locationstring"); console.log('New clean param: '+filteredParams.toString()); } else { console.log('Your browser does not support URLSearchParams') } $("#removeJobSearchNudge").click(function(){ $(".excludeJobSearchNudge").hide(); }); $("#activityTypeSelect").change(function () { var url = $(this).val(); var optionClass = $('[name="activityTypeSelect"] option:selected').attr('class') //console.log('class: '+optionClass); if (url) { if (localStorage) { localStorage.setItem('volunteerActivityType',optionClass); } window.location = url; } return false; }); /* $(".command-create-alert").click(function(e) { if (localStorage) { localStorage.setItem('alertStatus', 'create'); } }); */ $('.featured-group').click( function() { $('#searchString').focus(); }); $('.btn-gototop').click( function(){ $('html, body').animate({ scrollTop: $('#header-search').offset().top - 0 }, 500); return false; }); /* auto scroll */ $(window).on("scroll", function() { var scrollPos = $(window).scrollTop(); if (scrollPos <= 300) { $('.btn-gototop').removeClass('visible'); } else { $('.btn-gototop').addClass('visible'); } if($(window).scrollTop() + $(window).height() > $(document).height() - 100) { $('.results-filter-button-overlay').hide(); } else { $('.results-filter-button-overlay').show(); } }); // facet radius selecting a city by name var inputobject = $('#locationstring-radiusmap'); inputobject.on('typeahead:select', function(evt, item) { var form = $(inputobject).parents('form'); window.clearTimeout(timeoutHandler); timeoutHandler = setTimeout(callLocationUpdate(item), 1000); }); if (adobeDataLayer != undefined) { adobeDataLayer.push({ "event": "customTracking", "link": { "customCall": "ESDC-EDSC:Jobbank Job Search Filter: "+filteredParams+"" } }); } }); $("#removeVirtualNudge").click(function(){ $(".excludeVirtualJobNudge").hide(); }); $(document).on('keypress', '.filterSearchControl', function(e){ if (e.keyCode == 32) { updateResultWithUrl(this); } e.preventDefault(); }); $(document).on('mousedown', '.filterSearchControl', function(e) { updateResultWithUrl(this); }); //]]> </script> <script src="/invitation-manager/Overlay.js"></script> <script src="/invitation-manager/InvitationManager.js"></script> <script type="text/javascript">_satellite.pageBottom();</script></body> </html>