var image_save_msg = 'You are not allowed to save images!';var no_menu_msg = 'Context menu disabled!';var smessage = "<b>Alert:</b> Content is protected !!";"use strict";
/* This because search property "includes" does not supported by IE*/
if (!String.prototype.includes) {
String.prototype.includes = function(search, start) {
if (typeof start !== 'number') {
start = 0;
}if (start + search.length > this.length) {
return false;
} else {
return this.indexOf(search, start) !== -1;
}
};
}
/*////////////////////////////////////*/
let canCall = true;function call_disable_copy_WithDelay(e) {
if (canCall) {
canCall = false;
disable_copy(e);
setTimeout(() => {
canCall = true;
}, 1000);
}
}function disable_copy(e)
{
window.wccp_pro_iscontenteditable_flag = false;
wccp_pro_log_to_console_if_allowed("function", "disable_copy");
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
var target = e.target || e.srcElement;var elemtype = e.target.nodeName;
elemtype = elemtype.toUpperCase();
if (apply_class_exclusion(e) == "Yes") return true;if(wccp_pro_iscontenteditable(e) == true) {return true;}
if(is_content_editable_element(current_clicked_element) == true)
{
return true;
}
else
{
if (smessage !== "" && e.detail == 2)
show_wccp_pro_message(smessage);
if (isSafari)
{
return true;
}
else
{
//wccp_pro_clear_any_selection();
return false;
}
}
/*disable context menu when shift + right click is pressed*/
var shiftPressed = 0;
var evt = e?e:window.event;
if (parseInt(navigator.appVersion)>3) {
if (document.layers && navigator.appName=="Netscape")
shiftPressed = (e.modifiers-0>3);
else
shiftPressed = e.shiftKey;
if (shiftPressed) {
if (smessage !== "") show_wccp_pro_message(smessage);
var isFirefox = typeof InstallTrigger !== 'undefined'; /* Firefox 1.0+ */
if (isFirefox) {
evt.cancelBubble = true;
if (evt.stopPropagation) evt.stopPropagation();
if (evt.preventDefault()) evt.preventDefault();
show_wccp_pro_message (smessage);
wccp_pro_clear_any_selection();
return false;
}
wccp_pro_clear_any_selection();
return false;
}
}
if(e.which === 2 ){
var clickedTag_a = (e==null) ? event.srcElement.tagName : e.target.tagName;
show_wccp_pro_message(smessage);
wccp_pro_clear_any_selection(); return false;
}
var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);
var checker_IMG = 'checked';
if (elemtype == "IMG" && checker_IMG == 'checked' && e.detail == 2) {show_wccp_pro_message(alertMsg_IMG);wccp_pro_clear_any_selection();return false;}//elemtype must be merged by elemtype checker on function disable_copy & disable_hot_keys
if (is_content_editable_element(elemtype) == false)
{
if (smessage !== "" && e.detail == 2)
show_wccp_pro_message(smessage);
if (isSafari)
{
return true;
}
else
{
wccp_pro_clear_any_selection(); return false;
}
}
else
{
return true;
}
}
////////////////////////////
function disable_copy_ie()
{
wccp_pro_log_to_console_if_allowed("function", "disable_copy_ie_function_started");
var e = e || window.event;
/*also there is no e.target property in IE.*/
/*instead IE uses window.event.srcElement*/
var target = e.target || e.srcElement;
var elemtype = window.event.srcElement.nodeName;
elemtype = elemtype.toUpperCase();if(wccp_pro_iscontenteditable(e) == true) return true;
if (apply_class_exclusion(e) == "Yes") return true;
if (elemtype == "IMG") {show_wccp_pro_message(alertMsg_IMG);return false;}
//elemtype must be merged by elemtype checker on function disable_copy & disable_hot_keys
if (is_content_editable_element(elemtype) == false)
{
return false;
}
}
function disable_drag_text(e)
{
wccp_pro_log_to_console_if_allowed("function", "disable_drag_text");
/*var isSafari = /Safari/.test(navigator.userAgent) && /Apple Computer/.test(navigator.vendor);*/
/*if (isSafari) {show_wccp_pro_message(alertMsg_IMG);return false;}*/
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement*/
var target = e.target || e.srcElement;
/*For contenteditable tags*/
if (apply_class_exclusion(e) == "Yes") return true;var elemtype = e.target.nodeName;
elemtype = elemtype.toUpperCase();
var disable_drag_text_drop = 'checked';
if (disable_drag_text_drop != "checked") return true;
if (window.location.href.indexOf("/user/") > -1) {
return true; /*To allow users to drag & drop images when editing thier profiles*/
}
return false;
}/*/////////////////special for safari Start////////////////*/
var onlongtouch;var timer;var touchduration = 1000; /*length of time we want the user to touch before we do something*/var elemtype = "";function touchstart(e)
{
wccp_pro_log_to_console_if_allowed("function", "touchstart");
var e = e || window.event;
/*also there is no e.target property in IE.*/
/*instead IE uses window.event.srcElement*/
var target = e.target || e.srcElement;
elemtype = window.event.srcElement.nodeName;
elemtype = elemtype.toUpperCase();
if(!wccp_pro_is_passive()) e.preventDefault();
if (!timer) {
timer = setTimeout(onlongtouch, touchduration);
}
}function touchend()
{
wccp_pro_log_to_console_if_allowed("function", "touchend");
/*stops short touches from firing the event*/
if (timer) {
clearTimeout(timer);
timer = null;
}
onlongtouch();
}onlongtouch = function(e)/*this will clear the current selection if any_not_editable_thing selected*/
{
wccp_pro_log_to_console_if_allowed("function", "onlongtouch");
if (is_content_editable_element(elemtype) == false)
{
if (window.getSelection) {
if (window.getSelection().empty) { /*Chrome*/
window.getSelection().empty();
} else if (window.getSelection().removeAllRanges) { /*Firefox*/
window.getSelection().removeAllRanges();
}
} else if (document.selection) { /*IE?*/
var textRange = document.body.createTextRange();
textRange.moveToElementText(element);
textRange.select();document.selection.empty();
}
return false;
}
};document.addEventListener("DOMContentLoaded", function(event)
{
window.addEventListener("touchstart", touchstart, false);
window.addEventListener("touchend", touchend, false);
});function wccp_pro_is_passive()
{
wccp_pro_log_to_console_if_allowed("function", "wccp_pro_is_passive");
var cold = false,
hike = function() {};try {
var aid = Object.defineProperty({}, 'passive', {
get() {cold = true}
});
window.addEventListener('test', hike, aid);
window.removeEventListener('test', hike, aid);
} catch (e) {}return cold;
}
/*/////////////////////////////////////////////////////////////////*/
function reEnable()
{
return true;
}if(navigator.userAgent.indexOf('MSIE')==-1) //If not IE
{
document.ondragstart = disable_drag_text;
document.onselectstart = call_disable_copy_WithDelay;
document.onselectionchange = call_disable_copy_WithDelay;
//document.onmousedown = disable_copy;
//document.addEventListener('click', disable_copy, false);
//document.addEventListener('click', set_current_clicked_element, false);
document.addEventListener('mousedown', set_current_clicked_element, false);
//document.onclick = reEnable;
}else
{
document.onselectstart = disable_copy_ie;
}var current_clicked_element = "";var current_clicked_object = null;function set_current_clicked_element(e)
{
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
var target = e.target || e.srcElement;var elemtype = e.target.nodeName;
elemtype = elemtype.toUpperCase();
current_clicked_element = elemtype;
console.log("current_clicked_element = " + current_clicked_element);
}
/*****************For contenteditable tags***************/
var wccp_pro_iscontenteditable_flag = false;function wccp_pro_iscontenteditable(e)
{
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
var target = e.target || e.srcElement;
var iscontenteditable = "false";
if(typeof target.getAttribute!="undefined" )
{
iscontenteditable = target.getAttribute("contenteditable"); // Return true or false as string
if(typeof target.hasAttribute!="undefined")
{
if(target.hasAttribute("contenteditable"))
iscontenteditable = true;
}
}
console.log("iscontenteditable:" + iscontenteditable);
var iscontenteditable2 = false;
if(typeof target.isContentEditable!="undefined" ) iscontenteditable2 = target.isContentEditable; // Return true or false as booleanif(target.parentElement !=null) iscontenteditable2 = target.parentElement.isContentEditable;
if (iscontenteditable == "true" || iscontenteditable == true || iscontenteditable2 == true)
{
if(typeof target.style!="undefined" ) target.style.cursor = "text";
//wccp_pro_log_to_console_if_allowed("", iscontenteditable + " " + iscontenteditable2);
wccp_pro_iscontenteditable_flag = true;
wccp_pro_log_to_console_if_allowed("function", "wccp_pro_iscontenteditable: true");
return true;
}
wccp_pro_log_to_console_if_allowed("function", "wccp_pro_iscontenteditable: false");
//wccp_pro_iscontenteditable_flag = false;
}
/******************************************************/
function wccp_pro_clear_any_selection()
{
if(window.wccp_pro_iscontenteditable_flag == true) return;
wccp_pro_log_to_console_if_allowed("function", "wccp_pro_clear_any_selection");
var myName = wccp_pro_clear_any_selection.caller.toString();
myName = myName.substr('function '.length);
myName = myName.substr(0, myName.indexOf('('));console.log("called_by: " + myName);
if (window.getSelection)
{
if (window.getSelection().empty)
{ // Chrome
window.getSelection().empty();
} else if (window.getSelection().removeAllRanges)
{ // Firefox
window.getSelection().removeAllRanges();
}
} else if (document.selection)
{ // IE?
document.selection.empty();
}
//show_wccp_pro_message("You are not allowed to make this operation");
}/*Is content_editable element*/
function is_content_editable_element(element_name = "")
{
if (element_name == "TEXT" || element_name == "#TEXT" || element_name == "TEXTAREA" || element_name == "INPUT" || element_name == "PASSWORD" || element_name == "SELECT" || element_name == "OPTION" || element_name == "EMBED" || element_name == "CODE" || element_name == "CODEBLOCK")
{
wccp_pro_log_to_console_if_allowed("function", "is_content_editable_element: true >>" + element_name);
return true;
}
wccp_pro_log_to_console_if_allowed("function", "is_content_editable_element: false >>" + element_name);
return false;
}
/*Is selection enabled element*/
/*
function is_selection_enabled_element(element_name = "")
{
if (is_content_editable_element == true)
{
wccp_pro_log_to_console_if_allowed("function", "is_selection_enabled_element: true >>" + element_name);
return true;
}
wccp_pro_log_to_console_if_allowed("function", "is_selection_enabled_element: false >>" + element_name);
return false;
}
*/
/*Hot keys function */
function disable_hot_keys(e)
{
wccp_pro_log_to_console_if_allowed("function", "disable_hot_keys");
e = e || window.event;
//console.log(e);
if (!e) return;
var key;if(window.event)
key = window.event.keyCode; /*IE*/
else if (e.hasOwnProperty("which")) key = e.which; /*firefox (97)*/wccp_pro_log_to_console_if_allowed("Data:", key);
if (key == 123 || (e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) )//F12 chrome developer key disable
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
var elemtype = e.target.tagName;
elemtype = elemtype.toUpperCase();
var sel = getSelectionTextAndContainerElement();
if(elemtype == "BODY" && sel.text != "") elemtype = sel.containerElement.tagName; /* no need for it when tag name is BODY, so we get the selected text tag name *//*elemtype must be merged by elemtype checker on function disable_copy & disable_copy_ie*/
if (is_content_editable_element(elemtype) == true)
{
elemtype = 'TEXT';
}
if(wccp_pro_iscontenteditable(e) == true) elemtype = 'TEXT';
if (key == 44)/*For any emement type, text elemtype is not excluded here, (prntscr (44)*/
{
copyTextToClipboard("");
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (e.ctrlKey || e.metaKey)
{
if (elemtype!= 'TEXT' && (key == 97 || key == 99 || key == 120 || key == 26 || key == 43))
{
show_wccp_pro_message('<b>Alert:</b> You are not allowed to copy content or view source');
return false;
}
if (elemtype!= 'TEXT')
{
if (key == 65)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 67)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 88)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 86)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
} }
if (key == 85)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 80)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 44)
{
copyTextToClipboard("no");
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 73)//F12 chrome developer key disable
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
}
if (key == 83)
{
show_wccp_pro_message('You are not allowed to print or save this page!!');
return false;
} }
return true;
}window.addEventListener('load', function (){
if(window.Zepto || !window.jQuery) jQuery = $;
jQuery(document).ready(function() {
jQuery(document).bind("keyup keydown", disable_hot_keys);
});
});
function nocontext(e) {wccp_pro_log_to_console_if_allowed("function", "nocontext");
e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
if (apply_class_exclusion(e) == 'Yes') return true;
var exception_tags = 'NOTAG,';
var clickedTag = (e==null) ? event.srcElement.tagName : e.target.tagName;
console.log("clickedTag: " + clickedTag);
var target = e.target || e.srcElement;
var parent_tag = ""; var parent_of_parent_tag = "";
if(target.parentElement != null)
{
parent_tag = target.parentElement.tagName;
if(target.parentElement.parentElement != null) parent_of_parent_tag = target.parentElement.parentElement.tagName;
}
var checker = 'checked';
if ((clickedTag == "IMG" || clickedTag == "FIGURE" || clickedTag == "SVG" || clickedTag == "PROTECTEDIMGDIV") && checker == 'checked') {
if (alertMsg_IMG != "")show_wccp_pro_message(alertMsg_IMG);
return false;
}else {exception_tags = exception_tags + 'IMG,';}
checker = '';
if ((clickedTag == "VIDEO" || clickedTag == "PROTECTEDWCCPVIDEO" || clickedTag == "EMBED") && checker == 'checked') {
if (alertMsg_VIDEO != "")show_wccp_pro_message(alertMsg_VIDEO);
return false;
}else {exception_tags = exception_tags + 'VIDEO,PROTECTEDWCCPVIDEO,EMBED,';}
checker = '';
if ((clickedTag == "A" || clickedTag == "TIME" || parent_tag == "A" || parent_of_parent_tag == "A") && checker == 'checked') {
if (alertMsg_A != "")show_wccp_pro_message(alertMsg_A);
return false;
}else {exception_tags = exception_tags + 'A,';if(parent_tag == "A" || parent_of_parent_tag == "A") clickedTag = "A";}checker = '';
if ((clickedTag == "P" || clickedTag == "B" || clickedTag == "FONT" || clickedTag == "LI" || clickedTag == "UL" || clickedTag == "STRONG" || clickedTag == "OL" || clickedTag == "BLOCKQUOTE" || clickedTag == "TH" || clickedTag == "TR" || clickedTag == "TD" || clickedTag == "SPAN" || clickedTag == "EM" || clickedTag == "SMALL" || clickedTag == "I" || clickedTag == "BUTTON") && checker == 'checked') {
if (alertMsg_PB != "")show_wccp_pro_message(alertMsg_PB);
return false;
}else {exception_tags = exception_tags + 'P,B,FONT,LI,UL,STRONG,OL,BLOCKQUOTE,TD,SPAN,EM,SMALL,I,BUTTON,';}
checker = 'checked';
if ((clickedTag == "INPUT" || clickedTag == "PASSWORD") && checker == 'checked') {
if (alertMsg_INPUT != "")show_wccp_pro_message(alertMsg_INPUT);
return false;
}else {exception_tags = exception_tags + 'INPUT,PASSWORD,';}
checker = '';
if ((clickedTag == "H1" || clickedTag == "H2" || clickedTag == "H3" || clickedTag == "H4" || clickedTag == "H5" || clickedTag == "H6" || clickedTag == "ASIDE" || clickedTag == "NAV") && checker == 'checked') {
if (alertMsg_H != "")show_wccp_pro_message(alertMsg_H);
return false;
}else {exception_tags = exception_tags + 'H1,H2,H3,H4,H5,H6,';}
checker = 'checked';
if (clickedTag == "TEXTAREA" && checker == 'checked') {
if (alertMsg_TEXTAREA != "")show_wccp_pro_message(alertMsg_TEXTAREA);
return false;
}else {exception_tags = exception_tags + 'TEXTAREA,';}
checker = 'checked';
if ((clickedTag == "DIV" || clickedTag == "BODY" || clickedTag == "HTML" || clickedTag == "ARTICLE" || clickedTag == "SECTION" || clickedTag == "NAV" || clickedTag == "HEADER" || clickedTag == "FOOTER") && checker == 'checked') {
if (alertMsg_EmptySpaces != "")show_wccp_pro_message(alertMsg_EmptySpaces);
return false;
}
else
{
if (exception_tags.indexOf(clickedTag)!=-1)
{
return true;
}
else
return false;
}
}
function disable_drag_images(e)
{
wccp_pro_log_to_console_if_allowed("function", "disable_drag_images");
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
var target = e.target || e.srcElement;
//For contenteditable tags
if (apply_class_exclusion(e) == "Yes") return true;var elemtype = e.target.nodeName;
if (elemtype != "IMG") {return;}
elemtype = elemtype.toUpperCase();
var disable_drag_drop_images = 'checked';
if (disable_drag_drop_images != "checked") return true;
if (window.location.href.indexOf("/user/") > -1) {
return true; //To allow users to drag & drop images when editing thier profiles
}
show_wccp_pro_message(alertMsg_IMG);
return false;
}
var alertMsg_IMG = "<b>Alert:</b> Protected image";
var alertMsg_A = "<b>Alert:</b> This link is protected";
var alertMsg_PB = "<b>Alert:</b> Right click on text is disabled";
var alertMsg_INPUT = "<b>Alert:</b> Right click is disabled";
var alertMsg_H = "<b>Alert:</b> Right click on headlines is disabled";
var alertMsg_TEXTAREA = "<b>Alert:</b> Right click is disabled";
var alertMsg_EmptySpaces = "<b>Alert:</b> Right click on empty spaces is disabled";
var alertMsg_VIDEO = "<b>Alert:</b> Right click on videos is disabled";
document.oncontextmenu=null;
document.oncontextmenu = nocontext;
document.addEventListener("contextmenu",nocontext);
window.addEventListener("contextmenu",nocontext);
function wccp_pro_msieversion()
{
var ua = window.navigator.userAgent;
var msie = ua.indexOf("MSIE");
var msie2 = ua.indexOf("Edge");
var msie3 = ua.indexOf("Trident");if (msie > -1 || msie2 > -1 || msie3 > -1) // If Internet Explorer, return version number
{
return "IE";
}
else // If another browser, return 0
{
return "otherbrowser";
}
}
var e = document.getElementsByTagName('H1')[0];
if(e && wccp_pro_msieversion() == "IE")
{
e.setAttribute('unselectable',"on");
}
function copyToClipboard(elem) {
// create hidden text element, if it doesn't already exist
var targetId = "_wccp_pro_hiddenCopyText_";
{
// must use a temporary form element for the selection and copy
target = document.getElementById(targetId);
if (!target) {
var target = document.createElement("textarea");
target.style.position = "absolute";
target.style.left = "-9999px";
target.style.top = "0";
target.id = targetId;
document.body.appendChild(target);
}
target.textContent = elem.textContent;
}
// select the content
var currentFocus = document.activeElement;
target.focus();
target.setSelectionRange(0, target.value.length);
// copy the selection
var succeed;
try {
succeed = document.execCommand("copy");
} catch(e) {
succeed = false;
}// restore original focus
if (currentFocus && typeof currentFocus.focus === "function") {
currentFocus.focus();
}
// clear temporary content
target.textContent = "";
document.getElementsByTagName('span')[0].innerHTML = " ";
return succeed;
}
/**************************************************/
function wccp_pro_log_to_console_if_allowed(title = "title", data = "")
{
var myName = "";
if(wccp_pro_log_to_console_if_allowed.caller != null) myName = wccp_pro_log_to_console_if_allowed.caller.toString();
myName = myName.substr('function '.length);
myName = myName.substr(0, myName.indexOf('('));//console.log("function_name: " + myName);
}
/**************************************************/
function fallbackCopyTextToClipboard(text) {
var textArea = document.createElement("textarea");
textArea.value = text;
document.body.appendChild(textArea);
textArea.focus();
textArea.select();try {
var successful = document.execCommand("copy");
var msg = successful ? "successful" : "unsuccessful";
console.log("Fallback: Copying text command was " + msg);
} catch (err) {
console.error("Fallback: Oops, unable to copy", err);
}document.body.removeChild(textArea);
}
/*****************************************/
function copyTextToClipboard(text) {
if (!navigator.clipboard) {
fallbackCopyTextToClipboard(text);
return;
}
navigator.clipboard.writeText(text).then(
function() {
console.log("Async: Copying to clipboard was successful!");
},
function(err) {
console.error("Async: Could not copy text: ", err);
}
);
}
/*****************************************/
/*getSelectionTextAndContainerElement*/
function getSelectionTextAndContainerElement()
{
var text = "", containerElement = null;
if (typeof window.getSelection != "undefined") {
var sel = window.getSelection();
if (sel.rangeCount) {
var node = sel.getRangeAt(0).commonAncestorContainer;
containerElement = node.nodeType == 1 ? node : node.parentNode;
if (typeof(containerElement.parentElement) != 'undefined') current_clicked_object = containerElement.parentElement;
text = sel.toString();
}
} else if (typeof document.selection != "undefined" && document.selection.type != "Control")
{
var textRange = document.selection.createRange();
containerElement = textRange.parentElement();
text = textRange.text;
}
return {
text: text,
containerElement: containerElement
};
}function getSelectionParentElement() {
var parentEl = null, sel;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
parentEl = sel.getRangeAt(0).commonAncestorContainer;
//sel.getRangeAt(0).startContainer.parentNode;
if (parentEl.nodeType != 1) {
parentEl = parentEl.parentNode;
}
}
} else if ( (sel = document.selection) && sel.type != "Control") {
parentEl = sel.createRange().parentElement();
}
let arr = new Array();
arr["nodeName"] = "cant_find_parent_element";
if(parentEl != null)
return parentEl;
else
return arr;
}
/*****************************************/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/*****************************************/
function apply_class_exclusion(e)
{
wccp_pro_log_to_console_if_allowed("function", "apply_class_exclusion" + e);
var my_return = 'No';
var e = e || window.event; // also there is no e.target property in IE. instead IE uses window.event.srcElement
var target = e.target || e.srcElement || 'nothing';
//if(target.parentElement != null) console.log (target.parentElement.className);
var excluded_classes = '' + '';
var class_to_exclude = "";
if(target.parentElement != null)
{
class_to_exclude = target.className + ' ' + target.parentElement.className || '';
}else{
class_to_exclude = target.className;
}
var class_to_exclude_array = Array();
//console.log(class_to_exclude);
if (typeof(class_to_exclude) != 'undefined') class_to_exclude_array = class_to_exclude.split(" ");
//console.log (class_to_exclude_array);
class_to_exclude_array.forEach(function(item)
{
if(item != '' && excluded_classes.indexOf(item)>=0)
{
//target.style.cursor = "text";
//console.log ('Yes');
my_return = 'Yes';
}
});try {
class_to_exclude = target.parentElement.getAttribute('class') || target.parentElement.className || '';
}
catch(err)
{
class_to_exclude = '';
}
if(class_to_exclude != '' && excluded_classes.indexOf(class_to_exclude)>=0)
{
//target.style.cursor = "text";
my_return = 'Yes';
}return my_return;
}
window.dataLayerPYS = window.dataLayerPYS || [];
console.log('PixelYourSite Free version 10.0.4');
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"wpemoji":"https:\/\/snapix.gr\/wp-includes\/js\/wp-emoji.js?ver=6.7.1","twemoji":"https:\/\/snapix.gr\/wp-includes\/js\/twemoji.js?ver=6.7.1"}};
/**
* @output wp-includes/js/wp-emoji-loader.js
*//**
* Emoji Settings as exported in PHP via _print_emoji_detection_script().
* @typedef WPEmojiSettings
* @type {object}
* @property {?object} source
* @property {?string} source.concatemoji
* @property {?string} source.twemoji
* @property {?string} source.wpemoji
* @property {?boolean} DOMReady
* @property {?Function} readyCallback
*//**
* Support tests.
* @typedef SupportTests
* @type {object}
* @property {?boolean} flag
* @property {?boolean} emoji
*//**
* IIFE to detect emoji support and load Twemoji if needed.
*
* @param {Window} window
* @param {Document} document
* @param {WPEmojiSettings} settings
*/
( function wpEmojiLoader( window, document, settings ) {
if ( typeof Promise === 'undefined' ) {
return;
}var sessionStorageKey = 'wpEmojiSettingsSupports';
var tests = [ 'flag', 'emoji' ];/**
* Checks whether the browser supports offloading to a Worker.
*
* @since 6.3.0
*
* @private
*
* @returns {boolean}
*/
function supportsWorkerOffloading() {
return (
typeof Worker !== 'undefined' &&
typeof OffscreenCanvas !== 'undefined' &&
typeof URL !== 'undefined' &&
URL.createObjectURL &&
typeof Blob !== 'undefined'
);
}/**
* @typedef SessionSupportTests
* @type {object}
* @property {number} timestamp
* @property {SupportTests} supportTests
*//**
* Get support tests from session.
*
* @since 6.3.0
*
* @private
*
* @returns {?SupportTests} Support tests, or null if not set or older than 1 week.
*/
function getSessionSupportTests() {
try {
/** @type {SessionSupportTests} */
var item = JSON.parse(
sessionStorage.getItem( sessionStorageKey )
);
if (
typeof item === 'object' &&
typeof item.timestamp === 'number' &&
new Date().valueOf() < item.timestamp + 604800 && // Note: Number is a week in seconds.
typeof item.supportTests === 'object'
) {
return item.supportTests;
}
} catch ( e ) {}
return null;
}/**
* Persist the supports in session storage.
*
* @since 6.3.0
*
* @private
*
* @param {SupportTests} supportTests Support tests.
*/
function setSessionSupportTests( supportTests ) {
try {
/** @type {SessionSupportTests} */
var item = {
supportTests: supportTests,
timestamp: new Date().valueOf()
};sessionStorage.setItem(
sessionStorageKey,
JSON.stringify( item )
);
} catch ( e ) {}
}/**
* Checks if two sets of Emoji characters render the same visually.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be passed by parameters.
*
* @since 4.9.0
*
* @private
*
* @param {CanvasRenderingContext2D} context 2D Context.
* @param {string} set1 Set of Emoji to test.
* @param {string} set2 Set of Emoji to test.
*
* @return {boolean} True if the two sets render the same.
*/
function emojiSetsRenderIdentically( context, set1, set2 ) {
// Cleanup from previous test.
context.clearRect( 0, 0, context.canvas.width, context.canvas.height );
context.fillText( set1, 0, 0 );
var rendered1 = new Uint32Array(
context.getImageData(
0,
0,
context.canvas.width,
context.canvas.height
).data
);// Cleanup from previous test.
context.clearRect( 0, 0, context.canvas.width, context.canvas.height );
context.fillText( set2, 0, 0 );
var rendered2 = new Uint32Array(
context.getImageData(
0,
0,
context.canvas.width,
context.canvas.height
).data
);return rendered1.every( function ( rendered2Data, index ) {
return rendered2Data === rendered2[ index ];
} );
}/**
* Determines if the browser properly renders Emoji that Twemoji can supplement.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be passed by parameters.
*
* @since 4.2.0
*
* @private
*
* @param {CanvasRenderingContext2D} context 2D Context.
* @param {string} type Whether to test for support of "flag" or "emoji".
* @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification.
*
* @return {boolean} True if the browser can render emoji, false if it cannot.
*/
function browserSupportsEmoji( context, type, emojiSetsRenderIdentically ) {
var isIdentical;switch ( type ) {
case 'flag':
/*
* Test for Transgender flag compatibility. Added in Unicode 13.
*
* To test for support, we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly (white flag emoji + transgender symbol).
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83C\uDFF3\uFE0F\u200D\u26A7\uFE0F', // as a zero-width joiner sequence
'\uD83C\uDFF3\uFE0F\u200B\u26A7\uFE0F' // separated by a zero-width space
);if ( isIdentical ) {
return false;
}/*
* Test for UN flag compatibility. This is the least supported of the letter locale flags,
* so gives us an easy test for full support.
*
* To test for support, we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly ([U] + [N]).
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83C\uDDFA\uD83C\uDDF3', // as the sequence of two code points
'\uD83C\uDDFA\u200B\uD83C\uDDF3' // as the two code points separated by a zero-width space
);if ( isIdentical ) {
return false;
}/*
* Test for English flag compatibility. England is a country in the United Kingdom, it
* does not have a two letter locale code but rather a five letter sub-division code.
*
* To test for support, we try to render it, and compare the rendering to how it would look if
* the browser doesn't render it correctly (black flag emoji + [G] + [B] + [E] + [N] + [G]).
*/
isIdentical = emojiSetsRenderIdentically(
context,
// as the flag sequence
'\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67\uDB40\uDC7F',
// with each code point separated by a zero-width space
'\uD83C\uDFF4\u200B\uDB40\uDC67\u200B\uDB40\uDC62\u200B\uDB40\uDC65\u200B\uDB40\uDC6E\u200B\uDB40\uDC67\u200B\uDB40\uDC7F'
);return ! isIdentical;
case 'emoji':
/*
* Four and twenty blackbirds baked in a pie.
*
* To test for Emoji 15.0 support, try to render a new emoji: Blackbird.
*
* The Blackbird is a ZWJ sequence combining 🐦 Bird and ⬛ large black square.,
*
* 0x1F426 (\uD83D\uDC26) == Bird
* 0x200D == Zero-Width Joiner (ZWJ) that links the code points for the new emoji or
* 0x200B == Zero-Width Space (ZWS) that is rendered for clients not supporting the new emoji.
* 0x2B1B == Large Black Square
*
* When updating this test for future Emoji releases, ensure that individual emoji that make up the
* sequence come from older emoji standards.
*/
isIdentical = emojiSetsRenderIdentically(
context,
'\uD83D\uDC26\u200D\u2B1B', // as the zero-width joiner sequence
'\uD83D\uDC26\u200B\u2B1B' // separated by a zero-width space
);return ! isIdentical;
}return false;
}/**
* Checks emoji support tests.
*
* This function may be serialized to run in a Worker. Therefore, it cannot refer to variables from the containing
* scope. Everything must be passed by parameters.
*
* @since 6.3.0
*
* @private
*
* @param {string[]} tests Tests.
* @param {Function} browserSupportsEmoji Reference to browserSupportsEmoji function, needed due to minification.
* @param {Function} emojiSetsRenderIdentically Reference to emojiSetsRenderIdentically function, needed due to minification.
*
* @return {SupportTests} Support tests.
*/
function testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically ) {
var canvas;
if (
typeof WorkerGlobalScope !== 'undefined' &&
self instanceof WorkerGlobalScope
) {
canvas = new OffscreenCanvas( 300, 150 ); // Dimensions are default for HTMLCanvasElement.
} else {
canvas = document.createElement( 'canvas' );
}var context = canvas.getContext( '2d', { willReadFrequently: true } );/*
* Chrome on OS X added native emoji rendering in M41. Unfortunately,
* it doesn't work when the font is bolder than 500 weight. So, we
* check for bold rendering support to avoid invisible emoji in Chrome.
*/
context.textBaseline = 'top';
context.font = '600 32px Arial';var supports = {};
tests.forEach( function ( test ) {
supports[ test ] = browserSupportsEmoji( context, test, emojiSetsRenderIdentically );
} );
return supports;
}/**
* Adds a script to the head of the document.
*
* @ignore
*
* @since 4.2.0
*
* @param {string} src The url where the script is located.
*
* @return {void}
*/
function addScript( src ) {
var script = document.createElement( 'script' );
script.src = src;
script.defer = true;
document.head.appendChild( script );
}settings.supports = {
everything: true,
everythingExceptFlag: true
};// Create a promise for DOMContentLoaded since the worker logic may finish after the event has fired.
var domReadyPromise = new Promise( function ( resolve ) {
document.addEventListener( 'DOMContentLoaded', resolve, {
once: true
} );
} );// Obtain the emoji support from the browser, asynchronously when possible.
new Promise( function ( resolve ) {
var supportTests = getSessionSupportTests();
if ( supportTests ) {
resolve( supportTests );
return;
}if ( supportsWorkerOffloading() ) {
try {
// Note that the functions are being passed as arguments due to minification.
var workerScript =
'postMessage(' +
testEmojiSupports.toString() +
'(' +
[
JSON.stringify( tests ),
browserSupportsEmoji.toString(),
emojiSetsRenderIdentically.toString()
].join( ',' ) +
'));';
var blob = new Blob( [ workerScript ], {
type: 'text/javascript'
} );
var worker = new Worker( URL.createObjectURL( blob ), { name: 'wpTestEmojiSupports' } );
worker.onmessage = function ( event ) {
supportTests = event.data;
setSessionSupportTests( supportTests );
worker.terminate();
resolve( supportTests );
};
return;
} catch ( e ) {}
}supportTests = testEmojiSupports( tests, browserSupportsEmoji, emojiSetsRenderIdentically );
setSessionSupportTests( supportTests );
resolve( supportTests );
} )
// Once the browser emoji support has been obtained from the session, finalize the settings.
.then( function ( supportTests ) {
/*
* Tests the browser support for flag emojis and other emojis, and adjusts the
* support settings accordingly.
*/
for ( var test in supportTests ) {
settings.supports[ test ] = supportTests[ test ];settings.supports.everything =
settings.supports.everything && settings.supports[ test ];if ( 'flag' !== test ) {
settings.supports.everythingExceptFlag =
settings.supports.everythingExceptFlag &&
settings.supports[ test ];
}
}settings.supports.everythingExceptFlag =
settings.supports.everythingExceptFlag &&
! settings.supports.flag;// Sets DOMReady to false and assigns a ready function to settings.
settings.DOMReady = false;
settings.readyCallback = function () {
settings.DOMReady = true;
};
} )
.then( function () {
return domReadyPromise;
} )
.then( function () {
// When the browser can not render everything we need to load a polyfill.
if ( ! settings.supports.everything ) {
settings.readyCallback();var src = settings.source || {};if ( src.concatemoji ) {
addScript( src.concatemoji );
} else if ( src.wpemoji && src.twemoji ) {
addScript( src.twemoji );
addScript( src.wpemoji );
}
}
} );
} )( window, document, window._wpemojiSettings );
var photocrati_ajax = {"url":"https:\/\/snapix.gr\/index.php?photocrati_ajax=1","rest_url":"https:\/\/snapix.gr\/wp-json\/","wp_home_url":"https:\/\/snapix.gr","wp_site_url":"https:\/\/snapix.gr","wp_root_url":"https:\/\/snapix.gr","wp_plugins_url":"https:\/\/snapix.gr\/wp-content\/plugins","wp_content_url":"https:\/\/snapix.gr\/wp-content","wp_includes_url":"https:\/\/snapix.gr\/wp-includes\/","ngg_param_slug":"ngg","rest_nonce":"307798672a"};
Σε ένα πλήρως οργανωμένο και εξοπλισμένο studio φωτογράφισης, μπορούμε να δημιουργήσουμε το κατάλληλο σκηνικό και να φωτογραφίσουμε με ιδιαίτερο τρόπο τα λευκά σας είδη.
Προφανώς και δεν θα θέλετε να έχετε στο δικό σας e-shop τις ίδιες φωτογραφίες που μοιράζονται από τις εταιρίες με τα επεξεργασμένα mockups. Δημιουργούμε λοιπόν πρωτότυπο περιεχόμενο τόσο για την τροφοδοσία του e-shop σας όσο και για την τροφοδοσία των social λογαριασμών σας με φωτογραφίες και βίντεο.
Επικοινωνήστε λοιπόν μαζί μας, να βρούμε τον καλύτερο τρόπο παρουσίασης των δικών σας προϊόντων.
Έχουμε στη διάθεσή μας πλήθος αξεσουάρ που θα μπορούσαν να χρησιμοποιηθούν και να δώσουν την αίσθηση κατοικημένου χώρου. Καλαίσθητες και λιτές επιλογές που θα αφήσουν τα δικά σας λευκά είδη να πρωταγωνιστήσουν και να φανούν στη φωτογράφιση.
Έχοντας εμπειρία στην κατασκευή σκηνικών μπορούμε ακόμα και κατά παραγγελία να διαμορφώσουμε το δικό σας εάν προτιμάτε κάτι ιδιαίτερο και στοχευμένο στο κοινό σας με το πιο προσιτό κόστος.
το κατάλληλο προσωπικό
Stylists & interior designers μπορούν να βάλουν το χεράκι τους για το αποτέλεσμα της φωτογράφισης. Το κάθε τι που θα βρίσκεται εντός του setup θα είναι προσεκτικά επιλεγμένο, στην θέση που πρέπει ώστε η φωτογράφιση των λευκών ειδών σας να βρίσκεται και εντός του προϋπολογισμού σας, αλλά κυρίως να είναι ικανή να πουλήσει . Βοηθητικό προσωπικό που θα φροντίσει την σωστή εμφάνιση των προϊόντων σας είναι επίσης έτοιμο.
το κατάλληλα μέσα
Διαθέτουμε τον κατάλληλο χώρο που μπορεί να διαμορφωθεί σε κρεβατοκάμαρα, καθιστικό ή μπάνιο για τις ανάγκες της φωτογράφισης. Φυσικά και ο κατάλληλος φωτισμός studio που θα δώσει την αίσθηση της σπιτικής ζεστασιάς και θα προσομοιώσει τις συνθήκες που έχει συνηθίσει να βλέπει το μάτι μας σε τέτοιους χώρους. Έχουμε δημιουργήσει πλέον τις καλύτερες συνθήκες φωτογράφισης για εσάς.
φωτογράφιση με πετσέτες μπάνιου
Σε διαμόρφωση που θυμίζει μπάνιο μπορεί να γίνει η φωτογράφιση για πετσέτες. Τα συνοδευτικά αξεσουάρ είναι λιτά σε φυσικούς τόνους και το κύριο μέλημα μας είναι αφ’ ενός μεν να παρουσιαστεί σωστά η υφή και η λεπτομέρεια, αφ’ εταίρου να τα φανταστεί ο πελάτης σας στο δικό του χώρο.
φωτογράφιση για χαλιά και ριχτάρια
Μια σπιτική γωνιά που μπορεί να διαμορφωθεί ώστε να φωτογραφηθούν λευκά είδη όπως πχ ριχτάρια, χαλιά κλπ.
φωτογράφιση για κουρτίνες σεντόνια και παπλώματα
Διαμορφώνουμε ένα περιβάλλον δωματίου που προσομοιώνει συνθήκες καθιστικού ή κρεβατοκάμαρας. Το setup και το styling είναι πλέον απαιτητικά.
Φωτογράφιση επίπλων
Έχουμε τον χώρο και τις δυνατότητες για την ιδανική φωτογράφιση επίπλων. Εάν θα πρέπει να προσθέσετε φωτογραφίες στο ηλεκτρονικό σας κατάστημα ή για την δημιουργία καταλόγου, βρίσκεστε στο κατάλληλο μέρος για να έχετε τις καλύτερες δυνατές φωτογραφίες.
θα θέλατε να δείτε περισσότερα;
shoes
cloths
jewelry
e commerce
advertising
ζητήστε προσφορά για φωτογράφιση λευκών ειδών & οικιακής χρήσης
Κάθε μήνα δημιουργούμε μια προσφορά συμπαραγωγής για ομαδική φωτογράφιση προϊόντων; Κάνε τώρα εγγραφή στο δελτίο προσφορών να τις μαθαίνεις άμεσα και κέρδισε 10% από την πρώτη σου κιόλας φωτογράφιση.
window.addEventListener('DOMContentLoaded', function() {}); //This line to stop JS deffer function in wp-rockt pluign
window.addEventListener('load', function (){
// Create the first div element with the "oncontextmenu" attribute
const wccp_pro_mask = document.createElement('div');
wccp_pro_mask.setAttribute('oncontextmenu', 'return false;');
wccp_pro_mask.setAttribute('id', 'wccp_pro_mask');// Create the second div element with the "msgmsg-box-wpcp hideme" classes
const wpcp_error_message = document.createElement('div');
wpcp_error_message.setAttribute('id', 'wpcp-error-message');
wpcp_error_message.setAttribute('class', 'msgmsg-box-wpcp hideme');// Add a span element with the "error: " text inside the second div
const error_span = document.createElement('span');
error_span.innerText = 'error: ';
wpcp_error_message.appendChild(error_span);// Add the error message text inside the second div
const error_text = document.createTextNode('<b>Alert:</b> Content is protected !!');
wpcp_error_message.appendChild(error_text);// Add the div elements to the document body
document.body.appendChild(wccp_pro_mask);
document.body.appendChild(wpcp_error_message);
});var timeout_result;
function show_wccp_pro_message(smessage="", style="")
{
wccp_pro_log_to_console_if_allowed("function", "show_wccp_pro_message" + smessage);
timeout = 0;
if(style == "") style = "warning-wpcp";
if (smessage !== "" && timeout!=0)
{
var smessage_text = smessage;
jquery_fadeTo();
document.getElementById("wpcp-error-message").innerHTML = smessage_text;
document.getElementById("wpcp-error-message").className = "msgmsg-box-wpcp showme " + style;
clearTimeout(timeout_result);
timeout_result = setTimeout(hide_message, timeout);
}
else
{
clearTimeout(timeout_result);
timeout_result = setTimeout(hide_message, timeout);
}
}
function hide_message()
{
jquery_fadeOut();
document.getElementById("wpcp-error-message").className = "msgmsg-box-wpcp warning-wpcp hideme";
}
function jquery_fadeTo()
{
try {
jQuery("#wccp_pro_mask").fadeTo("slow", 0.3);
}
catch(err) {
//alert(err.message);
}
}
function jquery_fadeOut()
{
try {
jQuery("#wccp_pro_mask").fadeOut( "slow" );
}
catch(err) {}
}
var Ngg_Pro_Cart_Settings = {"currency_format":"<i class='fa fa-eur'><\/i> %.2f","checkout_url":"https:\/\/snapix.gr\/%cf%86%cf%89%cf%84%ce%bf%ce%b3%cf%81%ce%ac%cf%86%ce%b9%cf%83%ce%b7-eshop-%cf%80%cf%81%ce%bf%cf%8a%cf%8c%ce%bd%cf%84%cf%89%ce%bd\/%ce%ad%cf%80%ce%b9%cf%80%ce%bb%ce%b1-%ce%bb%ce%b5%cf%85%ce%ba%ce%ac-%ce%b5%ce%af%ce%b4%ce%b7\/","use_cookies":"true","country_list_json_url":"https:\/\/snapix.gr\/wp-content\/plugins\/nextgen-gallery-pro\/static\/Commerce\/Countries.json","i18n":{"continue_shopping":"Continue shopping","crop_button":"Edit Crop","crop_button_close":"Save Crop","empty_cart":"Empty cart","image_header":"Image","item_header":"Description","no_items":"There have been no items added to your cart.","price_header":"Price","quantity_header":"Quantity","ship_elsewhere":"International","ship_to":"Ship to:","ship_via":"Ship via:","shipping":"Shipping:","subtotal":"Subtotal:","tax":"Tax:","total":"Total:","total_header":"Totals","update_shipping":"Update shipping & taxes","coupon_apply":"Apply","coupon_discount_amount":"Discount:","coupon_notice":"Coupon has been applied","coupon_placeholder":"Coupon code","coupon_undiscounted_subtotal":"Subtotal before discount:","calculating":"Calculating...","error_empty":"%s cannot be empty.","error_form_invalid":"Form contains errors, please correct all errors before submitting the order.","error_invalid":"%s is in an invalid format.","error_minimum":"%1$s needs to be at least %2$s characters.","select_country":"Select Country","select_region":"Select Region","shipping_address_line_label":"Address Line 2","shipping_address_line_tip":"Address Line 2","shipping_city_label":"City","shipping_city_tip":"City","shipping_country_label":"Country","shipping_country_tip":"Country","shipping_email_label":"Email","shipping_email_tip":"Email","shipping_name_label":"Full Name","shipping_name_tip":"Full Name","shipping_phone_label":"Phone","shipping_phone_tip":"Phone","shipping_state_label":"State \/ Region","shipping_state_tip":"State \/ Region","shipping_street_address_label":"Address Line 1","shipping_street_address_tip":"Address Line 1","shipping_zip_label":"Postal Code","shipping_zip_tip":"Zip \/ Postal Code","tbd":"Please Add Address","unshippable":"We're sorry, but one or more items you've selected cannot be shipped to this country."},"sources":{"ngg_whcc_pricelist":true,"ngg_manual_pricelist":false,"ngg_digital_downloads":false},"download_url":"https:\/\/snapix.gr\/wp-json\/nggpro\/v1\/digital-downloads\/download?item_id={item_id}&image_id={image_id}"};
var ajax_object = {"ajaxurl":"https:\/\/snapix.gr\/wp-admin\/admin-ajax.php","link":"https:\/\/snapix.gr\/%CF%86%CF%89%CF%84%CE%BF%CE%B3%CF%81%CE%AC%CF%86%CE%B9%CF%83%CE%B7-eshop-%CF%80%CF%81%CE%BF%CF%8A%CF%8C%CE%BD%CF%84%CF%89%CE%BD\/%CE%AD%CF%80%CE%B9%CF%80%CE%BB%CE%B1-%CE%BB%CE%B5%CF%85%CE%BA%CE%AC-%CE%B5%CE%AF%CE%B4%CE%B7\/"};
var pum_vars = {"version":"1.20.3","pm_dir_url":"https:\/\/snapix.gr\/wp-content\/plugins\/popup-maker\/","ajaxurl":"https:\/\/snapix.gr\/wp-admin\/admin-ajax.php","restapi":"https:\/\/snapix.gr\/wp-json\/pum\/v1","rest_nonce":null,"default_theme":"8862","debug_mode":"","disable_tracking":"","home_url":"\/","message_position":"top","core_sub_forms_enabled":"1","popups":[],"cookie_domain":"","analytics_route":"analytics","analytics_api":"https:\/\/snapix.gr\/wp-json\/pum\/v1"};
var pum_sub_vars = {"ajaxurl":"https:\/\/snapix.gr\/wp-admin\/admin-ajax.php","message_position":"top"};
var pum_popups = {"pum-9916":{"triggers":[{"type":"auto_open","settings":{"delay":20000,"cookie_name":["pum-9916"]}}],"cookies":[{"event":"on_popup_close","settings":{"name":"pum-9916","key":"","session":null,"path":true,"time":"2 day"}}],"disable_on_mobile":false,"disable_on_tablet":false,"atc_promotion":null,"explain":null,"type_section":null,"theme_id":"8862","size":"tiny","responsive_min_width":"25%","responsive_max_width":"80%","custom_width":"640px","custom_height_auto":false,"custom_height":"380px","scrollable_content":false,"animation_type":"fade","animation_speed":"350","animation_origin":"left bottom","open_sound":"none","custom_sound":"","location":"center","position_top":"100","position_bottom":"10","position_left":"10","position_right":"0","position_from_trigger":false,"position_fixed":false,"overlay_disabled":false,"stackable":false,"disable_reposition":false,"zindex":"1999999999","close_button_delay":"0","fi_promotion":null,"close_on_form_submission":false,"close_on_form_submission_delay":"0","close_on_overlay_click":false,"close_on_esc_press":true,"close_on_f4_press":false,"disable_form_reopen":false,"disable_accessibility":false,"theme_slug":"default-theme","id":9916,"slug":"subscribe-products"}};
var kb_splide = {"i18n":{"prev":"Previous slide","next":"Next slide","first":"Go to first slide","last":"Go to last slide","slideX":"Go to slide %s","pageX":"Go to page %s","play":"Start autoplay","pause":"Pause autoplay","carousel":"carousel","slide":"slide","select":"Select a slide to show","slideLabel":"%s of %s"}};
var kb_splide = {"i18n":{"prev":"Previous slide","next":"Next slide","first":"Go to first slide","last":"Go to last slide","slideX":"Go to slide %s","pageX":"Go to page %s","play":"Start autoplay","pause":"Pause autoplay","carousel":"carousel","slide":"slide","select":"Select a slide to show","slideLabel":"%s of %s"}};
var wpformsDispatchEvent = function (el, ev, custom) {
var e = document.createEvent(custom ? "CustomEvent" : "HTMLEvents");
custom ? e.initCustomEvent(ev, true, true, false) : e.initEvent(ev, true, true);
el.dispatchEvent(e);
};
var wpformsRecaptchaV3Execute = function ( callback ) {
grecaptcha.execute( "6LeUo04qAAAAAFwUzn6AxYekAmXZUsO1BuJV_wwr", { action: "wpforms" } ).then( function ( token ) {
Array.prototype.forEach.call( document.getElementsByName( "wpforms[recaptcha]" ), function ( el ) {
el.value = token;
} );
if ( typeof callback === "function" ) {
return callback();
}
} );
}
grecaptcha.ready( function () {
wpformsDispatchEvent( document, "wpformsRecaptchaLoaded", true );
} );
var wpforms_settings = {"val_required":"This field is required.","val_email":"Please enter a valid email address.","val_email_suggestion":"Did you mean {suggestion}?","val_email_suggestion_title":"Click to accept this suggestion.","val_email_restricted":"This email address is not allowed.","val_number":"Please enter a valid number.","val_number_positive":"Please enter a valid positive number.","val_minimum_price":"Amount entered is less than the required minimum.","val_confirm":"Field values do not match.","val_checklimit":"You have exceeded the number of allowed selections: {#}.","val_limit_characters":"{count} of {limit} max characters.","val_limit_words":"{count} of {limit} max words.","val_recaptcha_fail_msg":"Google reCAPTCHA verification failed, please try again later.","val_turnstile_fail_msg":"Cloudflare Turnstile verification failed, please try again later.","val_inputmask_incomplete":"Please fill out the field in required format.","uuid_cookie":"","locale":"el","country":"","country_list_label":"Country list","wpforms_plugin_url":"https:\/\/snapix.gr\/wp-content\/plugins\/wpforms-lite\/","gdpr":"","ajaxurl":"https:\/\/snapix.gr\/wp-admin\/admin-ajax.php","mailcheck_enabled":"1","mailcheck_domains":[],"mailcheck_toplevel_domains":["dev"],"is_ssl":"1","currency_code":"USD","currency_thousands":",","currency_decimals":"2","currency_decimal":".","currency_symbol":"$","currency_symbol_pos":"left","val_requiredpayment":"Payment is required.","val_creditcard":"Please enter a valid credit card number.","css_vars":["field-border-radius","field-border-style","field-border-size","field-background-color","field-border-color","field-text-color","field-menu-color","label-color","label-sublabel-color","label-error-color","button-border-radius","button-border-style","button-border-size","button-background-color","button-border-color","button-text-color","page-break-color","background-image","background-position","background-repeat","background-size","background-width","background-height","background-color","background-url","container-padding","container-border-style","container-border-width","container-border-color","container-border-radius","field-size-input-height","field-size-input-spacing","field-size-font-size","field-size-line-height","field-size-padding-h","field-size-checkbox-size","field-size-sublabel-spacing","field-size-icon-size","label-size-font-size","label-size-line-height","label-size-sublabel-font-size","label-size-sublabel-line-height","button-size-font-size","button-size-height","button-size-padding-h","button-size-margin-top","container-shadow-size-box-shadow"],"isModernMarkupEnabled":"1","formErrorMessagePrefix":"Form error message","errorMessagePrefix":"Error message","submitBtnDisabled":"Submit button is disabled during form submission.","error_updating_token":"Error updating token. Please try again or contact support if the issue persists.","network_error":"Network error or server is unreachable. Check your connection or try again later.","token_cache_lifetime":"86400","hn_data":{"16403":3}}