pagelayer_svg_cache = {};
var pagelayer_document_width;
// For automatic row parent change
jQuery(window).resize(function(){
var new_vw = jQuery(document).width();
if(new_vw == pagelayer_document_width){
return false;
}
pagelayer_document_width = new_vw;
// Set a timeout to prevent bubbling
setTimeout(function(){
jQuery(pagelayer_editable+' .pagelayer-row-stretch-full').each(function(){
var par = jQuery(this).parent();
pagelayer_pl_row_parent_full(par);
});
}, 200);
});
// Render for row
function pagelayer_render_pl_row(el){
var img_urls = !pagelayer_empty(el.tmp['bg_slider-urls']) ? JSON.parse(el.tmp['bg_slider-urls']) : [];
el.atts['slider'] = '';
if(!pagelayer_empty(img_urls)){
for(var x in img_urls){
el.atts['slider'] += '
';
}
}
// Row background parallax image.
if(!pagelayer_empty(el.atts['parallax_img'])){
el.atts['parallax_img_src'] = el.tmp['parallax_img-'+el.atts['parallax_id_size']+'-url'] || el.tmp['parallax_img-url'];
el.atts['parallax_img_src'] = el.atts['parallax_img_src'] || el.atts['parallax_img'];
}
pagelayer_bg_video(el);
}
// Render for inner row
function pagelayer_render_pl_inner_row(el){
pagelayer_render_pl_row(el);
}
// Render for col
function pagelayer_render_pl_col(el){
var img_urls = !pagelayer_empty(el.tmp['bg_slider-urls']) ? JSON.parse(el.tmp['bg_slider-urls']) : [];
el.atts['slider'] = '';
if(!pagelayer_empty(img_urls)){
for(var x in img_urls){
el.atts['slider'] += '';
}
}
// We need the parent of type pagelayer-wrap-col
var par = el.$.parent('.pagelayer-wrap-col');
// Apply to wrapper
if(!pagelayer_empty(el.atts['col'])){
for(var x=1; x<=12; x++){
if(par.hasClass('pagelayer-col-'+x)){
par.removeClass('pagelayer-col-'+x);
break;
}
}
par.addClass('pagelayer-col-'+el.atts['col']);
par.css('width', '');
}
if(el.atts['col_width']){
par.css('width', '');
}
// Col background parallax image.
if(!pagelayer_empty(el.atts['parallax_img'])){
el.atts['parallax_img_src'] = el.tmp['parallax_img-'+el.atts['parallax_id_size']+'-url'] || el.tmp['parallax_img-url'];
el.atts['parallax_img_src'] = el.atts['parallax_img_src'] || el.atts['parallax_img'];
}
pagelayer_bg_video(el);
}
function pagelayer_bg_video(el){
el.tmp['bg_video_src-url'] = el.tmp['bg_video_src-url'] || el.atts['bg_video_src'];
var src = el.tmp['bg_video_src-url'];
if(pagelayer_empty(src)){
return;
}
var iframe_atts = pagelayer_video_url(src, true);
// console.log(iframe_atts);
iframe_atts['src'] += (iframe_atts['src'].indexOf('?') == -1 ? '?' : '');
// Adding mute and loop option in row or col
if(el.atts['mute'] == "true"){
iframe_atts['src'] +="&mute=1";
el.atts['mute'] = " muted ";
}else{
iframe_atts['src'] +="&mute=0";
el.atts['mute'] = "";
}
if(el.atts['stop_loop'] != "true"){
iframe_atts['src'] +="&loop=1";
el.atts['stop_loop'] = " loop ";
}else{
iframe_atts['src'] +="&loop=0";
el.atts['stop_loop'] ="";
}
if (iframe_atts['type'] == 'youtube') {
var settings = 'data-loop="'+(!pagelayer_empty(el['atts']['stop_loop']) ? 1 : 0)+'" data-mute="'+ (!pagelayer_empty(el['atts']['mute']) ? 1 : 0)+'" data-videoid="'+(iframe_atts['id'].split('&')[0])+'"';
el.atts['vid_src'] = '';
} else if (iframe_atts['type'] == 'vimeo') {
el.atts['vid_src'] = '';
}else{
el.atts['vid_src'] = '';
}
}
// Load the full width row
function pagelayer_render_end_pl_row(el){
// The parent
var par = el.$.parent();
// Any class with full width
if(el.$.hasClass('pagelayer-row-stretch-full')){
// Give it the full width
pagelayer_pl_row_full(el.$);
// Give full width to the parent
pagelayer_pl_row_parent_full(par);
// Also add that we had a full width
el.$.addClass('pagelayer-row-stretch-had-full');
// Did this row have full width ?
}else if(el.$.hasClass('pagelayer-row-stretch-had-full')){
// Remove style
el.$.removeAttr('style');
par.removeAttr('style');
par.children('.pagelayer-ele-overlay').removeAttr('style');
// Remove HAD class
el.$.removeClass('pagelayer-row-stretch-had-full');
}
pagelayer_pl_row_video(el.$);
el.$.find('.pagelayer-parallax-window img').each(function(){
pagelayer_pl_row_parallax(jQuery(this));
});
el.$.find('.pagelayer-bgimg-slider').each(function(){
pagelayer_pl_row_slider(jQuery(this));
});
// Row shape
if('row_shape_type_top' in el.atts){
pagelayer_render_row_shape(el, 'top')
}
if('row_shape_type_bottom' in el.atts){
pagelayer_render_row_shape(el, 'bottom')
}
}
// Render for inner row
function pagelayer_render_end_pl_inner_row(el){
pagelayer_render_end_pl_row(el);
}
// Set Row parent width
function pagelayer_pl_row_parent_full(par){
var vw = jQuery('html').width();
par.css({'width': vw,'max-width': '100vw'});
par.offset({left: 0});
par.children('.pagelayer-row').css({left: 0});
}
// Row shape render
function pagelayer_render_row_shape(el, shape_pos){
var name = el.atts['row_shape_type_'+shape_pos]+'-'+shape_pos+'.svg';
// DO we have in cache
if(!(name in pagelayer_svg_cache)){
// Make url and fetch
var url = pagelayer_url+'/images/shapes/'+name;
jQuery.get(url, function(data){
el.$.find('.pagelayer-svg-'+shape_pos).html(data);
pagelayer_svg_cache[name] = data;
}, 'html');
// Fill with cache
}else{
el.$.find('.pagelayer-svg-'+shape_pos).html(pagelayer_svg_cache[name]);
}
}
// Load the col
function pagelayer_render_end_pl_col(el){
pagelayer_pl_row_video(el.$);
el.$.find('.pagelayer-parallax-window img').each(function(){
pagelayer_pl_row_parallax(jQuery(this));
});
el.$.find('.pagelayer-bgimg-slider').each(function(){
pagelayer_pl_row_slider(jQuery(this));
});
}
// Render the image object
function pagelayer_render_pl_image(el){
// Decide the image URL
el.atts['func_id'] = el.tmp['id-'+el.atts['id-size']+'-url'] || el.tmp['id-url'];
el.atts['func_id'] = el.atts['func_id'] || el.atts['id'];
el.atts['pagelayer-srcset'] = el.atts['func_id']+', '+el.atts['func_id']+' 1x, ';
var image_atts = {
name : 'id',
size : 'id-size'
};
pagelayer_get_img_src(el, image_atts);
// What is the link ?
if('link_type' in el.atts){
// Custom url
if(el.atts['link_type'] == 'custom_url'){
el.atts['func_link'] = el.tmp['link'] || '';
}
// Link to the media file itself
if(el.atts['link_type'] == 'media_file'){
el.atts['func_link'] = el.tmp['id-url'] || el.atts['id'];
}
// Lightbox
if(el.atts['link_type'] == 'lightbox'){
el.atts['func_link'] = el.tmp['id-url'] || el.atts['id'];
}
}
}
// Incase if there is a lightbox
function pagelayer_render_end_pl_image(el){
pagelayer_pl_image(el.$);
}
// Pre DragAndDrop function
function pagelayer_preDAndD_image(jEle){
dropzoneParent = jEle.find('.pagelayer-img').parent();
// Check if drop zone is already there then return
if(dropzoneParent.find('.pagelayer-image-drop-zone').length > 0){
return;
}
var dropDiv = '
'+
'
'+
''+
'
'+pagelayer_l('drop_file')+'
'+
'
'+
''+
'
'+
'
'+
'
';
dropzoneParent.prepend(dropDiv);
dropZone = dropzoneParent.find('.pagelayer-image-drop-zone');
// Inserting values in image drag and drop function
pagelayer_img_dragAndDrop(dropzoneParent, dropZone, jEle, '');
}
// Render for video
function pagelayer_render_pl_video(el){
el.atts['video_overlay_image-url'] = el.tmp['video_overlay_image-'+el.atts['custom_size']+'-url'] || el.tmp['video_overlay_image-url'];
el.atts['video_overlay_image-url'] = el.atts['video_overlay_image-url'] || el.atts['video_overlay_image'];
el.tmp['src-url'] = el.tmp['src-url'] || el.atts['src'];
el.tmp['ele_id'] = el['id'];
var vid_atts = pagelayer_video_url(el.tmp['src-url'], true);
vid_atts['src'] += (vid_atts['src'].indexOf('?') == -1 ? '?' : '');
vid_atts['src'] += el.atts['autoplay'] == 'true' ? '&autoplay=1' : '&autoplay=0' ;
var mute = el.atts['mute'] == 'true' ? 1 : 0;
vid_atts['src'] +='&'+(vid_atts['type'] == 'vimeo' ? 'muted' : 'mute')+'='+mute;
vid_atts['src'] += el.atts['loop'] == 'true' ? '&loop=1' : '&loop=0' ;
el.atts['vid_src'] = vid_atts['src']+(vid_atts['type'] == 'youtube' ? '&playlist='+vid_atts['id'] : '');
}
// Incase if there is a lightbox
function pagelayer_render_end_pl_video(el){
pagelayer_pl_video(el.$);
}
// Render the testimonial
function pagelayer_render_pl_testimonial(el){
if(!pagelayer_empty(el.tmp['avatar-no-image-set'])){
el.atts['avatar'] = '';
return;
}
//console.log(el);
// Decide the image URL
el.atts['func_image'] = el.tmp['avatar-'+el.atts['custom_size']+'-url'] || el.tmp['avatar-url'];
el.atts['func_image'] = el.atts['func_image'] || el.atts['avatar'];
}
// Render the stars
function pagelayer_render_end_pl_stars(el){
var jEle = el.$.find('.pagelayer-stars-container');
pagelayer_stars(jEle);
};
// Render the service box
function pagelayer_render_pl_service(el){
// Decide the image URL
el.atts['func_image'] = el.tmp['service_image-'+el.atts['service_image_size']+'-url'] || el.tmp['service_image-url'];
el.atts['func_image'] = el.atts['func_image'] || el.atts['service_image'];
el.atts['pagelayer-srcset'] = el.atts['func_image']+', '+el.atts['func_image']+' 1x, ';
var image_atts = {
name : 'service_image',
size : 'service_image_size'
};
pagelayer_get_img_src(el, image_atts);
}
function pagelayer_render_end_pl_service(el){
// Drag and Drop function for image
if (typeof pagelayer_preDAndD_image !== "undefined") {
pagelayer_preDAndD_image(el.$);
}
}
function pagelayer_social(jEle,sel){
var holder = jEle.find(sel);
var icon = holder.data('icon');
if(pagelayer_empty(icon)){
return;
}
//alert(icon);
var icon_splited = icon.split(' fa-');
//console.log(icon_splited);
holder.addClass('pagelayer-'+icon_splited[1]);
}
function pagelayer_social_icon_onchange(jEle, row, val){
var url = '';
// Lets get the value of the nearest social icon
for(var k in pagelayer_social_urls){
var patt = new RegExp(k, 'i');
if(patt.test(val)){
url = pagelayer_social_urls[k];
}
}
if(url.length > 0){
var social_url_row = row.parent().find('[pagelayer-elp-name="social_url"]');
//console.log(social_url_row);
social_url_row.find('.pagelayer-elp-link').val(url).trigger('change');
}
}
// Render the social icon
function pagelayer_render_end_pl_social(el){
pagelayer_social(el.$, '.pagelayer-icon-holder');
}
// Render the social profile group
function pagelayer_render_end_pl_social_grp(el){
// Removing extra animation classes
el.$.find('.pagelayer-icon-holder').removeClass (function (index, className) {
return (className.match (/(^|\s)pagelayer-animation-\S+/g) || []).join(' ');
});
pagelayer_pl_social_profile(el.$);
}
// Render the counter
function pagelayer_render_end_pl_counter(el){
pagelayer_counter();
};
// Render the progress
function pagelayer_render_end_pl_progress(el){
pagelayer_progress();
};
// Render the image slider
function pagelayer_render_pl_image_slider(el){
// The URLs
var img_urls = !pagelayer_empty(el.tmp['ids-urls']) ? JSON.parse(el.tmp['ids-urls']) : [];
var all_urls = !pagelayer_empty(el.tmp['ids-all-urls']) ? JSON.parse(el.tmp['ids-all-urls']) : [];
var img_title = !pagelayer_empty(el.tmp['ids-all-titles']) ? JSON.parse(el.tmp['ids-all-titles']) : [];
//console.log(img_urls);
var ul = '';
var is_link = 'link_type' in el.atts && !pagelayer_empty(el.atts['link_type']) ? true : false;
// Create figure HTML
for (var x in img_urls){
// Use the default URL first
var url = img_urls[x];
// But if we have a custom size, use that
if(el.atts['size'] != 'custom' && x in all_urls && el.atts['size'] in all_urls[x]){
url = all_urls[x][el.atts['size']];
}
ul += '
';
if(is_link){
var link = (el.atts['link_type'] == 'media_file' ? (!pagelayer_empty(img_urls[x]) ? img_urls[x] : url) : (el.tmp['link'] || ''))
ul += '';
}
ul += '';
if(is_link){
ul += '';
}
ul += '
';
}
if(pagelayer_empty(ul)){
ul = '
'+ pagelayer_l('Please select Images from left side Widget properties.')+'
';
}
el.atts['ul'] = ul;
// Which arrows to show
if('controls' in el.atts && (el.atts['controls'] == 'arrows' || el.atts['controls'] == 'none')){
el.CSS.attr.push({'sel': '.pagelayer-image-slider-ul', 'val': 'data-pager="false"'});
}
if('controls' in el.atts && (el.atts['controls'] == 'pager' || el.atts['controls'] == 'none')){
el.CSS.attr.push({'sel': '.pagelayer-image-slider-ul', 'val': 'data-controls="false"'});
}
};
// Render the image slider
function pagelayer_render_end_pl_image_slider(el){
pagelayer_owl_destroy(el.$, '.pagelayer-image-slider-ul');
pagelayer_pl_image_slider(el.$);
}
// Render the grid gallery
function pagelayer_render_pl_grid_gallery(el){
// The URLs
var img_urls = !pagelayer_empty(el.tmp['ids-urls']) ? JSON.parse(el.tmp['ids-urls']) : [];
var all_urls = !pagelayer_empty(el.tmp['ids-all-urls']) ? JSON.parse(el.tmp['ids-all-urls']) : [];
var img_title = !pagelayer_empty(el.tmp['ids-all-titles']) ? JSON.parse(el.tmp['ids-all-titles']) : [];
var img_links = !pagelayer_empty(el.tmp['ids-all-links']) ? JSON.parse(el.tmp['ids-all-links']) : [];
var img_captions = !pagelayer_empty(el.tmp['ids-all-captions']) ? JSON.parse(el.tmp['ids-all-captions']) : [];
//console.log(img_urls);
var ul = '';
var pagin = '
1
';
var is_link = 'link_to' in el.atts && !pagelayer_empty(el.atts['link_to']) ? true : false;
var i = 0;
var j = 1;
if(pagelayer_empty(el.tmp)){
ul = '
';
var gallery_rand = 'gallery-id-'+Math.floor((Math.random() * 100) + 1);
var imgInPage = el.atts['images_no'];
// Create figure HTML
for (var x in img_urls){
if(imgInPage != 0 && (i % imgInPage) == 0 && i != 0){
ul += '
';
j++;
pagin += '
'+j+'
';
}
// Use the default URL first
var url = img_urls[x];
// But if we have a custom size, use that
if(el.atts['size'] != 'custom' && x in all_urls && el.atts['size'] in all_urls[x]){
url = all_urls[x][el.atts['size']];
}
ul += '
' : '';
el.tmp['gallery-random-id'] = gallery_rand;
el.atts['ul'] = ul;
}
function pagelayer_render_end_pl_grid_gallery(el){
pagelayer_pl_grid_lightbox(el.$);
}
// Render for tabs
function pagelayer_render_html_pl_tabs(el){
el.CSS.attr.push({'sel': '{{element}}', 'val': 'pagelayer-tabs-rotate="'+el.atts["rotate"]+'"'});
};
// Render the tab item
function pagelayer_render_end_pl_tabs(el){
pagelayer_pl_tabs(el.$);
}
// Render the accordion item
function pagelayer_render_end_pl_accordion(el){
pagelayer_pl_accordion(el.$);
};
// Render the collapse item
function pagelayer_render_end_pl_collapse(el){
pagelayer_pl_collapse(el.$);
};
// Render the accordion item handler
pagelayer_add_action('pagelayer_element_setup', function(e, jEle){
var tag = pagelayer_tag(jEle);
if( tag != 'pl_accordion_item'){
return;
}
var panel = jEle.find('.pagelayer-accordion-panel');
pagelayer_add_inner_row_notice(panel);
});
// Render the accordion item handler
pagelayer_add_action('pagelayer_do_dirty', function(e, jEle){
var panel = jEle.closest('.pagelayer-accordion-panel');
pagelayer_add_inner_row_notice(panel);
});
// Add inner row notice
function pagelayer_add_inner_row_notice(panel){
if(panel.length < 1 || panel.children('.pagelayer-ele-wrap, .pagelayer-ele').not('.pagelayer-row-not-found').length > 0){
if(panel.children('.pagelayer-row-not-found').length > 0){
panel.children('.pagelayer-row-not-found').remove();
}
return;
}
var div = `
There is no editable area found. Please click here to Add a Row and continue editing!
`;
panel.html(div);
panel.find('.pagelayer-click-add-row').on('click', function(){
panel.find('.pagelayer-row-not-found').remove();
// Create Row
var row = jQuery('');
panel.append(row);
var row_id = pagelayer_onadd(row, false);
var rEle = pagelayer_ele_by_id(row_id);
// Create Column
var col = jQuery('');
rEle.find('.pagelayer-row-holder').append(col);
var col_id = pagelayer_onadd(col, false);
var cEle = pagelayer_ele_by_id(col_id);
cEle.click();
});
}
// Shortcode Handler
var pagelayer_shortcodes_timer;
function pagelayer_render_pl_shortcodes(el){
// Clear any previous timeout
clearTimeout(pagelayer_shortcodes_timer);
// Set a timer for constant change
pagelayer_shortcodes_timer = setTimeout(function(){
// Make the call
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_do_shortcodes',
type: 'POST',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
shortcode_data: el.atts['data']
},
success:function(data) {
el.$.find('.pagelayer-shortcodes-container').html(data);
}
});
}, 500);
};
// Render the widget area i.e. Sidebars
function pagelayer_render_pl_wp_widgets(el){
// Clear any previous timeout
clearTimeout(pagelayer_shortcodes_timer);
// Set a timer for constant change
pagelayer_shortcodes_timer = setTimeout(function(){
// Make the call
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_fetch_sidebar',
type: 'POST',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
sidebar: el.atts['sidebar']
},
success:function(data) {
el.$.find('.pagelayer-wp-sidebar-holder').html(data);
}
});
}, 500);
};
function pagelayer_owl_destroy(jEle, slides_class){
var ul = jEle.find(slides_class);
var setup = jEle.attr('pagelayer-setup');
// Already setup ?
if(setup && setup.length > 0){
if(ul.children('.pagelayer-ele-wrap')){
ul.pagelayerOwlCarousel('destroy');
ul.find('[class^="pagelayer-owl-"]').remove();
jEle.removeAttr('pagelayer-setup');
}
}
}
// Render the google maps v3
function pagelayer_render_pl_google_maps(el){
el.atts['show_v2'] = true;
if(pagelayer_empty(el.atts['api_version'])){
el.atts['src_code'] = '';
return;
}
el.atts['show_v2'] = false;
var gmaps_key = (pagelayer_empty(pagelayer_gmaps_key) ? '' : pagelayer_gmaps_key);
var api_key = (pagelayer_empty(el.atts['api_key']) ? gmaps_key : el.atts['api_key']);
if(el.atts['map_modes'] == 'view'){
el.atts['center'] = pagelayer_empty(el.atts['center']) ? '-33.8569,151.2152' : el.atts['center'];
}
var src_code = (pagelayer_empty(el.atts['center']) ? '' : '¢er='+el.atts['center'])+(el.atts['map_modes'] == 'streetview' ? '' : '&maptype='+el.atts['map_type']+'&zoom='+el.atts['zoom']);
switch(el.atts['map_modes']){
case 'place':
src_code += encodeURI('&q='+(pagelayer_empty(el.atts['address']) ? 'New York, New York, USA' : el.atts['address'] ));
break;
case 'directions':
src_code += encodeURI('&origin='+(pagelayer_empty(el.atts['direction_origin']) ? 'Oslow Norway' : el.atts['direction_origin'] ));
src_code += encodeURI('&destination='+(pagelayer_empty(el.atts['direction_destination']) ? 'Telemark Norway' : el.atts['direction_destination'] ));
src_code += (pagelayer_empty(el.atts['direction_waypoints']) ? '' : '&waypoints='+(el.atts['direction_waypoints'].trim()).split(' ').join('|') );
src_code += (pagelayer_empty(el.atts['direction_modes']) ? '' : '&mode='+el.atts['direction_modes'] );
src_code += (pagelayer_empty(el.atts['direction_avoid']) ? '' : '&avoid='+el.atts['direction_avoid'].split(',').join('|') );
src_code += (pagelayer_empty(el.atts['direction_units']) ? '' : '&units='+el.atts['direction_units'] );
break;
case 'streetview':
src_code += '&pano='+(pagelayer_empty(el.atts['streetview_pano']) ? 'eTnPNGoy4bxR9LpjjfFuOw' : el.atts['streetview_pano'] );
src_code += '&location='+(pagelayer_empty(el.atts['streetview_location']) ? '46.414382,10.013988' : el.atts['streetview_location'] );
src_code += (pagelayer_empty(el.atts['streetview_heading']) ? '' : '&heading='+el.atts['streetview_heading'] );
src_code += (pagelayer_empty(el.atts['streetview_pitch']) ? '' : '&pitch='+el.atts['streetview_pitch'] );
src_code += (pagelayer_empty(el.atts['streetview_fov']) ? '' : '&fov='+el.atts['streetview_fov'] );
break;
case 'search':
src_code += encodeURI('&q='+(pagelayer_empty(el.atts['search_term']) ? 'Record stores in Seattle' : el.atts['search_term'] ));
break;
}
var src_code_url = 'https://www.google.com/maps/embed/v1/'+el.atts['map_modes']+'?key='+api_key+src_code;
el.atts['src_code'] = '';
}
////////////
// Freemium
////////////
// Render the excerpt
function pagelayer_render_html_pl_post_excerpt(el){
el.$.find('.pagelayer-post-excerpt').addClass('pagelayer-empty-widget');
}
// Render the featured image
function pagelayer_render_html_pl_featured_img(el){
var param = {};
param['pagelayer_nonce'] = pagelayer_ajax_nonce;
// Post Id
param['post_id'] = pagelayer_postID;
// Image size
if('size' in el.atts){
param['size'] = el.atts['size'];
}
jQuery.ajax({
url: pagelayer_ajax_url+'action=pagelayer_fetch_featured_img',
type: 'post',
data: param,
dataType: 'json',
success: function(data){
var src = '';
var title = '';
var alt = '';
if(pagelayer_empty(data)){
src = el.tmp['img-'+el.atts['size']+'-url'] || el.tmp['img-url'];
src = src || el.atts['img'];
}else{
src = data['url'];
alt = data['alt'];
title = data['title'];
if(el.atts['size']+'-url' in data){
src = data[el.atts['size']+'-url'];
}
}
var img_html = '';
if(src){
img_html = '';
}
el.$.find('.pagelayer-featured-img').html(img_html);
if('link_type' in el.atts){
// Custom url
if(el.atts['link_type'] == 'custom_url'){
el.$.find('a').attr('href', el.tmp['link']);
}
// Link to the media file itself
if(el.atts['link_type'] == 'media_file' || el.atts['link_type'] == 'lightbox'){
el.$.find('a').attr('href', src);
}
}
pagelayer_pl_image(el.$);
}
});
}
// Retina image setting attribute.
function pagelayer_get_img_src(el, image_atts){
// Check if retina images is set
if(!pagelayer_empty(el.tmp[image_atts.name+'-retina-url']) && el.tmp[image_atts.name+'-retina-url'].includes('default-image') == false){
var retina_image = el.tmp[image_atts.name+'-retina-'+el.atts[image_atts.size]+'-url'];
retina_image = pagelayer_empty(retina_image) ? el.tmp[image_atts.name+'-retina-url'] : retina_image;
el.atts['pagelayer-srcset'] += retina_image +' 2x, ';
}
// Check if retina mobile images is set
if(!pagelayer_empty(el.tmp[image_atts.name+'-retina-mobile-url']) && el.tmp[image_atts.name+'-retina-mobile-url'].includes('default-image') == false){
var retina_image_mobile = el.tmp[image_atts.name+'-retina-mobile-'+el.atts[image_atts.size]+'-url'];
retina_image_mobile = pagelayer_empty(retina_image_mobile) ? el.tmp[image_atts.name+'-retina-mobile-url'] : retina_image_mobile;
el.atts['pagelayer-srcset'] += retina_image_mobile +' 3x';
}
}
/////////////////
// Freemium
/////////////////
// If you want to store ajax data then you can use this variable
var pagelayer_ajax_data = {};
var pagelayer_posts_data = {};
// Compare two objects
function pagelayer_compare_object(obj1, obj2){
var objectsAreSame = true;
for(var propertyName in obj1){
if(obj1[propertyName] !== obj2[propertyName]){
objectsAreSame = false;
break;
}
}
for(var propertyName in obj2){
if(obj1[propertyName] !== obj2[propertyName]){
objectsAreSame = false;
break;
}
}
return objectsAreSame;
}
// Incase if there is a lightbox
function pagelayer_render_end_pl_featured_img(el){
pagelayer_pl_image(el.$);
}
// Render the archive Posts
function pagelayer_render_pl_archive_posts(el){
// Need to do empty
el.atts['pagelayer_pagination_top'] = '';
el.atts['pagelayer_pagination_bottom'] = '';
}
// Render the archive Posts
function pagelayer_render_end_pl_archive_posts(el){
var post = {};
// All atts
post['atts'] = JSON.parse(JSON.stringify(el.atts));
post['atts']['pagelayer-id'] = el['id'];
// The nonce
post['pagelayer_nonce'] = pagelayer_ajax_nonce;
var data_handle = function(data){
//console.log(data);
var d = jQuery(data);
el.$.children(':not(style)').remove();
var child = el.$.append(d.children(':not(style)'));
pagelayer_ajax_data[el['id']] = data;
}
if(pagelayer_empty(pagelayer_posts_data) || !pagelayer_compare_object(pagelayer_posts_data, post) || pagelayer_empty(pagelayer_ajax_data[el['id']])){
pagelayer_posts_data = post;
jQuery.ajax({
url: pagelayer_ajax_url+'action=pagelayer_archive_posts_data',
type: 'post',
data: post,
success: data_handle
});
}else{
data_handle(pagelayer_ajax_data[el['id']]);
}
}
function pagelayer_apply_megamenu_items(html, menuID, menuEle, eleActive){
if(pagelayer_empty(pagelayer_menus_items_list[menuID])){
return html;
}
var menu_data = jQuery('
').html(html);
var $elements = pagelayer_menus_items_list[menuID];
var unset_ele = function(navItem){
var src = jQuery(navItem);
var nhtml = src[0].outerHTML;
var nEle = jQuery(nhtml);
nEle.removeAttr('pagelayer-parent');
nEle.find('[pagelayer-parent]').removeAttr('pagelayer-parent');
nEle.find('style').remove();
nEle.find('.pagelayer-ele-overlay').remove();
// Unwrap the wraps
nEle.find('.pagelayer-ele').each(function (){
var ele = jQuery(this);
if(ele.parent().is('.pagelayer-ele-wrap')){
ele.unwrap();
}
});
return nEle;
}
for($e in $elements){
var savedHTML = '';
if(pagelayer_empty($elements[$e]['pagelayer_content'])){
continue;
}
var mID = $elements[$e]['ID'];
var navItem = menuEle.find('.pagelayer-mega-editor-'+mID).find('.pagelayer-nav_menu_item').first();
var id = pagelayer_id(menuEle);
if(navItem.length > 0 && eleActive){
savedHTML = unset_ele(navItem);
}else{
savedHTML = pagelayer_element_unsetup($elements[$e]['pagelayer_content']);
}
menu_data.find('.pagelayer-mega-editor-'+mID).html(savedHTML[0].outerHTML);
}
return menu_data.html();
}
var pagelayer_nav = {};
var pagelayer_wp_menu_timer;
var pagelayer_nav_force_refresh = {};
// Render the Primary menu
function pagelayer_render_pl_wp_menu(el){
var jEle = el.$;
var menuID = el.atts['nav_list'];
var parMenu = jEle.parent().closest('.pagelayer-wp_menu');
var inside_mega = '';
var menu_error = '';
// If we are inside primary menu and have a same menu ID
if(parMenu.length > 0){
var parMenuID = pagelayer_get_att(parMenu, 'nav_list');
if(menuID == parMenuID){
pagelayer_show_msg('Not allowed same Menu inside the Primary menu widget!', 'warning');
inside_mega = true;
// If parent menu menuID is empty then we prevent menu inside menu
}else if(pagelayer_empty(menuID) || pagelayer_empty(parMenuID) ){
menu_error = 'Primary Menu Holder. Please select the correct menu or parent menu.';
inside_mega = true;
}
}
// Set atts for easy rendering in PHP
pagelayer_set_atts(jEle, 'inside_mega', inside_mega);
if(!pagelayer_empty(inside_mega)){
if(pagelayer_empty(menu_error)){
menu_error = 'Primary Menu Holder. Please select the correct menu.';
}
el.atts['nav_menu'] = menu_error;
return;
}
// Setting default toggle icon. If the icon is empty.
if(pagelayer_empty(el.atts['menu_toggle_icon'])){
el.atts['menu_toggle_icon'] = 'fas fa-bars';
}
// To avoid remove pagelayer id of mega menu item
var eleActive = !pagelayer_empty(pagelayer_active.el) && (el.id == pagelayer_active.el.id || jEle.find(pagelayer_active.el.$).length > 0);
if(pagelayer_empty(pagelayer_nav[menuID]) || !pagelayer_empty(pagelayer_nav_force_refresh[el.id])){
var pagelayer_nav_items_list = pagelayer_get_nav_items(jEle);
var findPar = jEle.find('.pagelayer-wp_menu-ul').parent();
el.atts['nav_menu'] = '';
// Get menu container for the hold place of the menu
if(findPar.length > 0){
el.atts['nav_menu'] = findPar[0].outerHTML;
}
// Clear any previous timeout
clearTimeout(pagelayer_wp_menu_timer);
// Set a timer for constant change
pagelayer_wp_menu_timer = setTimeout(function(){
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_fetch_primary_menu&postID='+pagelayer_postID, // Send post id to on live mode
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
nav_list: menuID,
pagelayer_nav_items: pagelayer_nav_items_list,
'pagelayer-live': 1
},
success: function(data) {
//console.log(data);
data = pagelayer_apply_megamenu_items(data, menuID, jEle, eleActive);
pagelayer_nav[menuID] = data;
},
complete: function() {
//console.log(data);
// Is element html rendered ?
var findCont = setInterval( function(){
var container = jEle.find('.pagelayer-wp-menu-container');
if(container.length < 1){
return;
}
clearInterval(findCont);
// Replace the menu HTML
container.find('.pagelayer-wp_menu-ul').parent().remove();
container.append(pagelayer_nav[menuID]);
var render_ref = pagelayer_render_menu_par;
pagelayer_render_menu_par = false;
container.find('.pagelayer-ele').each(function(){
var iEle = jQuery(this);
if(iEle.parent('.pagelayer-ele-wrap').length > 0){
return;
}
var id = pagelayer_assign_id(iEle);
pagelayer_element_setup('[pagelayer-id="'+id+'"]', true);
});
pagelayer_render_menu_par = render_ref;
pagelayer_primary_menu(jEle);
}, 100);
}
});
}, 500);
}else{
el.atts['nav_menu'] = pagelayer_apply_megamenu_items(pagelayer_nav[menuID], menuID, jEle, eleActive);
}
pagelayer_nav_force_refresh[el.id] = false;
}
// Render end the Primary menu
function pagelayer_render_end_pl_wp_menu(el){
var jEle = el.$;
var render_ref = pagelayer_render_menu_par;
pagelayer_render_menu_par = false;
// Re-setup the element
jEle.find('.pagelayer-ele').each(function(){
var ele = jQuery(this);
if(ele.parent('.pagelayer-ele-wrap').length > 0){
return;
}
var id = pagelayer_assign_id(ele);
pagelayer_element_setup('[pagelayer-id="'+id+'"]', true);
});
pagelayer_render_menu_par = render_ref;
pagelayer_primary_menu(el.$);
}
// The Primary menu handler on live
pagelayer_add_action('pagelayer_primary_menu_setup_end', function(e, jEle){
jEle.find('li.pagelayer-mega-menu-item a > .after-icon').unbind('click');
jEle.unbind('click.mega_menu');
jEle.on('click.mega_menu', 'li.pagelayer-mega-menu-item', function(e){
var target = jQuery(e.target);
var mEle = jQuery(this);
if(target.closest('.pagelayer-mega-menu').length > 0 || target.closest(mEle).length < 1){
return;
}
jQuery('.pagelayer-active-mega-menu').each(function(){
var oEle = jQuery(this);
if(mEle.is(oEle)){
return;
}
oEle.removeClass('pagelayer-active-mega-menu');
});
mEle.toggleClass('pagelayer-active-mega-menu');
});
});
var pagelayer_render_menu = {};
var pagelayer_render_menu_par = true;
// Render end the Primary menu
function pagelayer_render_end_pl_nav_menu_item(el){
if(pagelayer_empty(pagelayer_menus_items_ref[el.atts['ID']])){
return;
}
var jEle = el.$;
if(pagelayer_render_menu_par){
// Render parent
clearTimeout(pagelayer_render_menu);
pagelayer_render_menu = setTimeout(function(){
var par = jEle.closest('.pagelayer-wp_menu');
var plID = pagelayer_id(par);
if(par.length < 1) return;
pagelayer_nav_force_refresh[plID] = true;
pagelayer_render_menu_par = false;
pagelayer_sc_render(par);
pagelayer_render_menu_par = true;
}, 500);
}
}
var pagelayer_nav_menu_timmer = {}
// On nav dirty handler
pagelayer_add_action('pagelayer_do_dirty', function(e, jEle){
var navEle = jEle.closest('[pagelayer-tag="pl_nav_menu_item"]');
if(navEle.length < 1){
return;
}
var itemData = pagelayer_data(navEle);
var atts = itemData.atts;
var itemID = atts['ID'];
if( !(itemID in pagelayer_menus_items_ref) ){
pagelayer_menus_items_ref[itemID] = {};
}
var props = pagelayer_get_props(navEle);
var menuEle = jEle.closest('.pagelayer-wp_menu');
var plID = pagelayer_id(menuEle);
for(var prop in props['settings']){
for(var section in props[prop]){
if(section in atts){
pagelayer_menus_items_ref[itemID][section] = atts[section];
continue;
}
pagelayer_menus_items_ref[itemID][section] = '';
}
}
pagelayer_menus_items_ref[itemID]['pagelayer_content'] = navEle;
pagelayer_menus_items_ref[itemID]['is_dirty'] = true;
var currentID = pagelayer_get_att(menuEle, 'nav_list');
// Prevent unnecessary render
jQuery(pagelayer_editable).find('.pagelayer-wp_menu').each(function(){
var mEle = jQuery(this);
var mID = pagelayer_get_att(mEle, 'nav_list');
if(currentID != mID){
return;
}
mEle.attr('pagelayer-click-render', 1);
});
menuEle.removeAttr('pagelayer-click-render');
});
// We need to render the original content before we can start editing
pagelayer_add_action('pagelayer_element_clicked', function(e, jEle){
var menus = jQuery(pagelayer_editable).find('.pagelayer-wp_menu');
// Prevent unnecessary render
if(!jEle.hasClass('pagelayer-wp_menu') || menus.length < 2 || pagelayer_empty(jEle.attr('pagelayer-click-render'))){
return;
}
jEle.find('[pagelayer-tag="pl_nav_menu_item"]').each(function(){
var cEle = jQuery(this),
postID = pagelayer_get_att(cEle, 'ID');
if(!(postID in pagelayer_menus_items_ref)){
return;
}
var ref_data = pagelayer_menus_items_ref[postID];
if(!('is_dirty' in ref_data) || pagelayer_empty(ref_data['is_dirty'])){
return;
}
pagelayer_sc_render(jEle);
return false; // Break the loop
});
});
// Render the post navigation
function pagelayer_render_end_pl_post_nav(el){
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_post_nav&postID='+pagelayer_postID,
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
data: el['atts'],
},
async:false,
success: function(response){
//console.log(response);
var obj = jQuery.parseJSON(response);
el.$.find('.pagelayer-prev-post').html(obj['atts']['prev_link']);
el.$.find('.pagelayer-next-post').html(obj['atts']['next_link']);
}
});
}
// Render the site title
function pagelayer_render_pl_wp_title(el){
//console.log(el.tmp);
// Use default logo
if(pagelayer_empty(el.atts['logo_img_type'])){
// But is there a default logo
if(!pagelayer_empty(pagelayer_site_logo)){
el.atts['func_image'] = pagelayer_site_logo[el.atts['logo_img_size']+'-url'] || pagelayer_site_logo['url'];
el.atts['logo_img-title'] = pagelayer_empty(pagelayer_site_logo.title) ? '' : pagelayer_site_logo.title;
el.atts['logo_img-alt'] = pagelayer_empty(pagelayer_site_logo.alt) ? '' : pagelayer_site_logo.alt;
}
// Custom logo
}else{
el.atts['func_image'] = el.tmp['logo_img-'+el.atts['logo_img_size']+'-url'] || el.tmp['logo_img-url'];
el.atts['func_image'] = pagelayer_empty(el.atts['func_image']) ? el.atts['logo_img'] : el.atts['func_image'];
}
}
// Render the Post comment
function pagelayer_render_end_pl_post_comment(el){
var postID = pagelayer_postID;
if(el['atts']['post_type'] == 'custom' && el['atts']['post_id']){
postID = el['atts']['post_id'];
}
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_post_comment&postID='+postID,
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
},
success: function(response){
el.$.find('.pagelayer-post-comment-container').html(response);
}
});
}
var pagelayer_post_info_timer = {};
// Render the Post info list
function pagelayer_render_pl_post_info_list(el){
el.atts['post_info_content'] = 1;
// Clear any previous timeout
clearTimeout(pagelayer_post_info_timer[el.id]);
// Set a timer for constant change
pagelayer_post_info_timer[el.id] = setTimeout(function(){
// Make the call
jQuery.ajax({
url: pagelayer_ajax_url+'&action=pagelayer_post_info&postID='+pagelayer_postID,
type: 'post',
data: {
pagelayer_nonce: pagelayer_ajax_nonce,
el: el.atts,
},
success: function(response){
var obj = jQuery.parseJSON(response);
//console.log(obj);el['atts'] = obj;
if( pagelayer_empty(obj['post_info_content']) ){
el.$.find('.pagelayer-post-info-list-container').remove();
return;
}
el.$.find('.pagelayer-post-info-list-container').show();
el.$.find('.pagelayer-post-info-label').html(obj['post_info_content']);
el.$.find('.pagelayer-post-info-icon img').attr('src', obj['avatar_url']);
el.$.find('.pagelayer-post-info-list-container > a').attr('href', obj['link']);
}
});
}, 500);
}
// Render the Post info list
function pagelayer_render_html_pl_post_info_list(el){
el.$.find('.pagelayer-post-info-list-container').hide();
}
// Render the contact form
function pagelayer_render_pl_contact(el){
// Set post id in atts
el.atts['con_post_id'] = pagelayer_postID;
el.atts['grecaptcha'] = pagelayer_recaptch_site_key;
}
// Render the contact form
function pagelayer_render_end_pl_contact(el){
jQuery(el.$).find('.pagelayer-recaptcha').each(function(){
var recaptcha = jQuery(this);
var widgetID = recaptcha.attr('recaptcha-widget-id');
if( !pagelayer_empty(window.grecaptcha) && (!pagelayer_empty(widgetID) || widgetID == 0) ){
grecaptcha.reset(widgetID);
}else{
pagelayer_recaptcha_loader(recaptcha, true);
}
});
// Showing contact form message in the editor only.
if(el.atts['show_msg_box']){
var msgBox = el.$.find('.pagelayer-message-box');
if(el.$.find('.pagelayer-message-box').length==2){
msgBox.eq(0).text('Demo success box');
msgBox.eq(0).addClass('pagelayer-cf-msg-suc');
msgBox.eq(1).text('Demo failed box');
msgBox.eq(1).addClass('pagelayer-cf-msg-err');
}
}
pagelayer_set_atts(el.$, 'con_post_id', pagelayer_postID);
}
function pagelayer_render_end_pl_heading(el) {
pagelayer_search_widgets(el.$);
}
function pagelayer_render_end_pl_text(el) {
pagelayer_search_widgets(el.$);
}
// Render the contact form
function pagelayer_render_pl_contact_item(el){
var html = '';
var options = '';
var placeholder = '';
var required = '';
if(!pagelayer_empty(el.atts['required'])){
required = 'required';
}
if(!pagelayer_empty(el.atts['label_name']) && pagelayer_empty(el.atts['label_as_holder'])){
html = '';
}
if(!pagelayer_empty(el.atts['label_as_holder'])){
placeholder = el.atts['label_name'];
}else{
if(!pagelayer_empty(el.atts['placeholder'])) placeholder = el.atts['placeholder'];
}
// File accept
var file_accept = '.jpg,.jpeg,.png,.gif,.pdf,.doc,.docx,.ppt,.pptx,.odt,.avi,.ogg,.m4a,.mov,.mp3,.mp4,.mpg,.wav,.wmv';
if(!pagelayer_empty(el.atts['accept_file'])){
file_accept = el.atts['accept_file'];
}
if(el.atts['field_type'] == 'select'){
html += '';
}else if(el.atts['field_type'] == 'checkbox'){
if(!pagelayer_empty(el.atts['values'])){
options = el.atts['values'].split("\n");
html += '