File: /var/www/vhosts/creativefellows.nl/apics.creativefellows.nl/23062022/public/js/app copy.js
$(document).foundation().ready(function(){
$(".lazy-image, .lazy-load-image").Lazy({
effect: "fadeIn",
effectTime : 500,
enableThrottle: true,
throttle: 250,
afterLoad: function(el){
//console.log( el );
el.parent().addClass("apics-shape__visible");
}
});
$("#view-container .cell").each(function(i, el) {
///console.log("Test");
if ($(el).visible(true)) {
$(el).addClass("already-visible");
}
});
$(window).scroll(function(event) {
$("#view-container .cell").each(function(i, el){
if ($(el).visible(true)) {
$(el).addClass("come-in");
}
});
});
$("#responsive-menu a").click(function(){
if(Foundation.MediaQuery.current == ("small" || "medium") ){
if($(this).attr("href")){
$("#responsive-menu").toggle();
$(".toggle-menu").toggleClass("open");
}
}
});
$("#filter-jobs").toggleFilterSearch();
// cookie accept
$('#acceptCookie').on("click",function(event)
{
event.preventDefault();
var link = $(this).attr("data-link")
$.ajax({
type: 'POST',
url: link,
complete: function(){
$("#accept-cookies").slideUp("fast");
}
});
});
//$(".row__mask-images img").RandomShapes();
});
$.fn.toggleFilterSearch = function(){
return this.each(function(){
var plugin = $(this);
var $results = $("#job-search-container");
var $counter = $results.find( $("[data-job-count]") );
var $job_cta = $results.find( $("[data-job-cta]") );
var $pagination = $results.find("[data-job-pagination]");
var $links = plugin.find("a");
var $buttons = plugin.find(".button[data-submit]");
var $reset = plugin.find(".button[data-reset]");
var $filters = plugin.find(".filter-options");
var $container = $results.find("[data-jobs-container]");
var $search = $("#search-jobs");
var $shadeout;
var baselink = plugin.data("post-action");//"/vacatures";
plugin.settings = {
shade_visible : false,
filter_open : false,
active_filter : null,
clicked_filter : null,
current_page : 1,
}
plugin.parameters = {}
plugin.init = function()
{
// create shade
plugin.shadeOut();
// open
$links.click( plugin.click );
// close
$buttons.click( plugin.filterJobs );
// search
//$search.click( plugin.search );
// reset
$reset.click( plugin.resetFilters );
}
plugin.resetFilters = function()
{
$(this).closest("form").find("input:checkbox").prop("checked",false);
$(this).closest("form").find("input:text").val("");
}
plugin.search = function(event)
{
event.preventDefault();
plugin.setFormData( );
plugin.postSearch(true);
}
plugin.filterJobs = function(event){
event.preventDefault();
plugin.closeFilters();
plugin.setFormData( );
plugin.postSearch(true);
}
plugin.setFormData = function()
{
var data = $("#filter-jobs-form").serializeArray();
data.push({name: "q", value: $("#test").val() });
data.push({name: "page", value: plugin.settings.current_page });
plugin.parameters = data;
}
plugin.postSearch = function(){
$.ajax({
type: 'POST',
url: baselink,
data: plugin.parameters,
success: function(data){
// insert jobs
$container.html("");
$.each( data.jobs, function( i, item ) {
$container.append( plugin.setJobData(item) );
});
// equalize blocks
Foundation.reInit( $container );
$("#filter-jobs").parent().css('height','auto');
// set job count
$counter.html(data.message);
if(data.cta) $job_cta.html(data.cta).removeClass("hide");
// set pagination
plugin.setPagination( data.pagination.html );
}
});
}
plugin.setPagination = function(html)
{
// update html
$pagination.html( html );
// pagination clicks
$pagination.find("a").click(function(event)
{
event.preventDefault();
// update clicked
$pagination.find("li").removeClass("current");
$(this).parent().addClass("current");
// set page to view
plugin.settings.current_page = $(this).data("page");
// set form data
plugin.setFormData();
// do search
plugin.postSearch();
});
}
plugin.paginationLink = function(i)
{
return baselink +'/'+ i;
}
plugin.setJobData = function(jobdata)
{
return '<div class="cell small-12 medium-6 large-3">\
<div class="callout callout__vacatures">\
<div class="callout-inner">\
<div class="callout-text" data-equalizer-watch>\
<h3>'+ jobdata.title +'</h3>\
<p>'+ jobdata.summary +'</p>\
<ul class="menu vertical menu__jobs-features">\
<li class="icon icon__location">'+ jobdata.location +'</li>\
<li class="icon icon__salary">'+ jobdata.salary_desc +'</li>\
<li class="icon icon__hours">'+ jobdata.hours +'</li>\
<li class="icon icon__education">'+ jobdata.education +'</li>\
</ul>\
</div>\
<a class="link link__apics-pointer" href="'+ jobdata.url +'">'+ jobdata.button +'</a>\
</div>\
</div>\
</div>';
}
plugin.click = function()
{
plugin.settings.clicked_filter = $(this);
plugin.toggleShadeOut();
}
plugin.toggleShadeOut = function()
{
// not open & not visible
if(!plugin.settings.filter_open && !plugin.settings.shade_visible) plugin.openFilter();
else if(plugin.settings.shade_visible && plugin.settings.filter_open && !plugin.settings.active_filter.is(plugin.settings.clicked_filter) ) plugin.switchFilter();
else plugin.closeFilters(true);
}
plugin.openFilter = function()
{
plugin.settings.shade_visible = true;
plugin.settings.filter_open = true;
plugin.settings.active_filter = plugin.settings.clicked_filter;
$shadeout.fadeIn();
}
plugin.switchFilter = function()
{
// hide others element
$filters.filter(':visible').addClass("hide");
plugin.settings.active_filter = plugin.settings.clicked_filter;
plugin.settings.shade_visible = true;
plugin.settings.filter_open = true;
}
plugin.closeFilters = function()
{
plugin.settings.shade_visible = false;
plugin.settings.filter_open = false;
plugin.settings.active_filter = null;
plugin.settings.clicked_filter = null;
setTimeout(function(){
$filters.addClass("hide");
},100)
$shadeout.fadeOut();
//console.log("close");
}
plugin.shadeOut = function()
{
if( $(".shadeout").length == 0 )
{
$shadeout = $('<div class="shadeout"></div>').hide();
$shadeout.insertAfter( plugin );
}
else $shadeout = $(".shadeout");
}
// init the plugin
plugin.init();
});
}
$.fn.visible = function(partial) {
var $t = $(this),
$w = $(window),
viewTop = $w.scrollTop(),
viewBottom = viewTop + $w.height(),
_top = $t.offset().top,
_bottom = _top + $t.height(),
compareTop = partial === true ? _bottom : _top,
compareBottom = partial === true ? _top : _bottom;
return ((compareBottom <= viewBottom) && (compareTop >= viewTop));
};
$.fn.RandomShapes = function(){
return this.each(function(){
var plugin = $(this);
plugin.init = function()
{
var shape = $('<div class="apics-shape">');//.addClass("test");
plugin.wrap(shape);
}
// init the plugin
plugin.init();
});
}
$(document).pjax('.top-bar a:not(.lang), a[ajax-load], .pagination a', '#view-container, #search-jobs', {
fragment: '#view-container',
timeout: 3000
});
$(document).on('pjax:send', function() {
$('#loading').show()
});
$(document).on('pjax:complete', function(){
$('#loading').fadeOut();
$(document).foundation();
$("#filter-jobs").toggleFilterSearch();
Foundation.reInit( $("[data-jobs-container]") );
setTimeout(function(){
$("#filter-jobs").parent().css('height','auto');
},100)
$(".lazy-image, .lazy-load-image").Lazy({
effect: "fadeIn",
effectTime : 500,
enableThrottle: true,
throttle: 250,
afterLoad: function(el){
//console.log( el );
el.parent().addClass("apics-shape__visible");
}
});
});