Files
newwalls.pl/themes/ayon_/assets/js/custom.js
2024-12-17 13:43:22 +01:00

474 lines
18 KiB
JavaScript

/*
* Custom code goes here.
* A template should always ship with an empty custom.js
*/
$( document ).ready(function() {
if ( sessionStorage.getItem("wcagColor") ){
jQuery("body").addClass("wcag");
jQuery(".switchColor").toggleClass('customInput')
}
});
var size = 1;
var sizeMin = 1;
var sizeMax = 5;
if ( sessionStorage.getItem("wcagSize") ){
size = sessionStorage.getItem("wcagSize");
WcagSetSize();
}
jQuery(".button-wcag-size-up").click(function(){
WcagSizeUp();
});
jQuery(".button-wcag-size-down").click(function(){
WcagSizeDown();
});
jQuery("#button-wcag").click(function(){
jQuery(".switchColor").toggleClass('customInput')
jQuery("body").toggleClass("wcag");
if ( jQuery("body").hasClass("wcag") ){
sessionStorage.setItem("wcagColor", "true");
contrastModeBackgroundWhite()
}
else{
sessionStorage.removeItem("wcagColor");
removecontrastModeBackgroundWhite()
}
});
$(document).on("click", ".toggle-listing-filters", function(){
jQuery("main").toggleClass("filtersHidden");
});
function WcagSizeUp(){
size = size + 1;
if (size > sizeMax) size = sizeMax;
WcagSetSize();
}
function WcagSizeDown(){
size = size - 1;
if (size < sizeMin) size = sizeMin;
WcagSetSize();
}
function WcagSetSize(){
WcagResetSize();
if (size != 1){
jQuery("body").addClass("size-"+size);
sessionStorage.setItem("wcagSize", size);
}
}
function WcagResetSize(){
jQuery("body").removeClass("size-2");
jQuery("body").removeClass("size-3");
jQuery("body").removeClass("size-4");
jQuery("body").removeClass("size-5");
sessionStorage.removeItem("wcagSize");
}
function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById(elmnt.id )) {
document.getElementById(elmnt.id ).onmousedown = dragMouseDown;
} else {
elmnt.onmousedown = dragMouseDown;
}
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
var fixedTop = (elmnt.offsetTop - pos2);
var fixedLeft = (elmnt.offsetLeft - pos1);
if (fixedTop < 0) fixedTop = 0;
if (fixedLeft < 0) fixedLeft = 0;
// 2 to border
if (fixedLeft + jQuery(elmnt).width() + 2 > jQuery(elmnt).parent().width() ) fixedLeft = jQuery(elmnt).parent().width() - jQuery(elmnt).width() - 2;
if (fixedTop + jQuery(elmnt).height() + 2 > jQuery(elmnt).parent().height() ) fixedTop = jQuery(elmnt).parent().height() - jQuery(elmnt).height() - 2;
elmnt.style.top = fixedTop + "px";
elmnt.style.left = fixedLeft + "px";
$('.piece-left-positon').html(fixedLeft);
$('.piece-top-positon').html(fixedTop);
prod();
MovePieceBackground(fixedLeft, fixedTop);
}
function closeDragElement() {
document.onmouseup = null;
document.onmousemove = null;
}
}
function CheckPieceBorders(){
var elmnt = document.getElementById("piece");
var fixedTop = parseFloat(elmnt.style.top);
var fixedLeft = parseFloat(elmnt.style.left);
if (fixedTop < 0) fixedTop = 0;
if (fixedLeft < 0) fixedLeft = 0;
// 2 to border
if (fixedLeft + jQuery(elmnt).width() + 2 > jQuery(elmnt).parent().width() ) fixedLeft = jQuery(elmnt).parent().width() - jQuery(elmnt).width() - 2;
if (fixedTop + jQuery(elmnt).height() + 2 > jQuery(elmnt).parent().height() ) fixedTop = jQuery(elmnt).parent().height() - jQuery(elmnt).height() - 2;
elmnt.style.top = fixedTop + "px";
elmnt.style.left = fixedLeft + "px";
MovePieceBackground(fixedLeft, fixedTop);
}
var pieceEverEnabled = false;
var checkedHandler = (value) => {
if (value.is(":checked")){
jQuery(".piece-size-values").fadeTo("slow",1);
jQuery("#piece").fadeIn();
jQuery("#custom-wallpaper-price").fadeTo("slow",1);
jQuery("#custom-wallpaper-price-label").fadeTo("slow",1);
jQuery("#piece-width").attr('readonly', false);
jQuery("#piece-height").attr('readonly', false);
jQuery(".images-container_bm .product-images li.thumb-container .thumb").addClass("dark");
var elmnt = document.getElementById("piece");
var leftSpacing = jQuery(elmnt).parent().width() / 2 - jQuery(elmnt).width() / 2 - 2;
var topSpacing = jQuery(elmnt).parent().height() / 2 - jQuery(elmnt).height() / 2 - 2;;
jQuery("#piece").css("top", topSpacing);
jQuery("#piece").css("left",leftSpacing);
MovePieceBackground(leftSpacing, topSpacing);
dragElement(document.getElementById("piece"));
jQuery("#piece-width").trigger("change");
jQuery("#piece-height").trigger("change");
jQuery("#product_is_crop").val(1);
$('#piece-size-view').html($("#piece-width").val()+'x'+$("#piece-height").val());
}else{
jQuery(".piece-size-values").fadeTo("slow",0.23);
jQuery("#piece").fadeOut();
jQuery("#custom-wallpaper-price").fadeTo("slow",0.23);
jQuery("#custom-wallpaper-price-label").fadeTo("slow",0.23);
jQuery("#piece-width").attr('readonly', true);
jQuery("#piece-height").attr('readonly', true);
jQuery(".images-container_bm .product-images li.thumb-container .thumb").removeClass("dark");
jQuery("#product_is_crop").val(0);
$('#piece-size-view').html('Wybierz rozmiar');
}
};
jQuery("#checkbox-piece").change(function(){
checkedHandler(jQuery("#checkbox-piece"))
});
jQuery(document).ready(function() {
jQuery('#checkbox-piece').prop('checked', false);
$('#piece-height').val(100);
$('#piece-width').val(100);
checkedHandler(jQuery("#checkbox-piece"))
});
jQuery("#group_5").click(function() {
jQuery('#checkbox-piece').prop('checked', true);
setTimeout(function() {$('#checkbox-piece').trigger('change');
$("#piece").css('top', parseInt($('.piece-top-positon').html())+"px");
jQuery("#piece").css('left', parseInt($('.piece-left-positon').html())+"px");
jQuery("#piece").css("background-position", parseInt('-'+$('.piece-left-positon').html())+"px "+parseInt('-'+$('.piece-top-positon').html())+"px");
}, 2000);
});
jQuery(".wariant_kolorystyczny").click(function() {
jQuery('#checkbox-piece').prop('checked', true);
setTimeout(function() {$('#checkbox-piece').trigger('change');
$("#piece").css('top', parseInt($('.piece-top-positon').html())+"px");
jQuery("#piece").css('left', parseInt($('.piece-left-positon').html())+"px");
jQuery("#piece").css("background-position", parseInt('-'+$('.piece-left-positon').html())+"px "+parseInt('-'+$('.piece-top-positon').html())+"px");
}, 2000);
});
function MovePieceBackground(left, top){
top = -top - 1;
left = -left - 1;
if (jQuery("#piece").hasClass("mirrored")){
left = -left + jQuery("#piece").width();
}
jQuery("#piece").css("background-size", jQuery("#piece").parent().width());
jQuery("#piece").css("background-position", left+"px "+top+"px");
//1000 500
jQuery("#product_crop_pos_x").val( Math.ceil(( 501 * Math.ceil(parseFloat(jQuery("#piece").css('left')) )) / jQuery("#piece").parent().width() ));
jQuery("#product_crop_pos_y").val( Math.ceil(( 301 * Math.ceil(parseFloat(jQuery("#piece").css('top')) )) / jQuery("#piece").parent().height() ));
}
jQuery("#piece-width").change(function() {
if (jQuery(this).val() > 500) jQuery(this).val(500);
if (jQuery(this).val() < 50) jQuery(this).val(50);
jQuery("#piece").width(this.value * 0.2 + "%");
$('.piece-width-px').html($('#piece-width').val());
$('#quantity_wanted_alt').val($('#piece-width').val()/100);
totalpriceinfospecific();
jQuery("#product_crop_width").val(jQuery("#piece-width").val());
CheckPieceBorders();
});
jQuery("#piece-height").change(function() {
if (jQuery(this).val() > 300) jQuery(this).val(300);
if (jQuery(this).val() < 50) jQuery(this).val(50);
jQuery("#piece").height(this.value * 0.3333 + "%");
$('.piece-height-px').html($('#piece-height').val());
$('#quantity_wanted_alth').val($('#piece-height').val()/100);
totalpriceinfospecific();
jQuery("#product_crop_height").val(jQuery("#piece-height").val());
CheckPieceBorders();
});
var basePrice = jQuery("#product_base_price").val();
function WallpaperMirrorReflection(){
jQuery(".product-images img.thumb").toggleClass("mirrored");
if (jQuery(".product-images img.thumb").hasClass("mirrored")){
jQuery("#piece").addClass("mirrored");
jQuery("#product_is_reflection").val(1);
}
else{
jQuery("#piece").removeClass("mirrored");
jQuery("#product_is_reflection").val(0);
}
CheckPieceBorders();
}
jQuery("#button-mirror-reflection").click(function() {
WallpaperMirrorReflection();
});
jQuery(document).ready(function(){
$('#add-to-cart-or-refresh button').on('click', function(e){
if (!$("#checkbox-piece").is(":checked")) {
e.stopPropagation();
e.preventDefault();
$.fancybox({
minWidth: 800,
maxWidth: 1000,
padding: 30,
height: 100,
content: 'Proszę wybrać rozmiar i wycinek tapety przed dodaniem jej do koszyka.'
});
}
});
});
jQuery(document).ready(function(){
if ( jQuery("body").hasClass("wcag") ){
contrastModeBackgroundWhite()
} else {
removecontrastModeBackgroundWhite()
}
jQuery("#textSearch").change(function(){
if (jQuery("#textSearch").val().length >= 1){
jQuery("#clearTextSearch").fadeIn();
}else{
ExcludeTextSearch();
}
if (jQuery("#textSearch").val().length >= 1){
var fullUrl = window.location.href;
if (fullUrl.indexOf("?") >= 0){
fullUrl = fullUrl + "&";
}else{
fullUrl = fullUrl + "?";
}
fullUrl = fullUrl + "text="+jQuery("#textSearch").val();
prestashop.emit("updateFacets",fullUrl);
}
});
jQuery("#clearTextSearch").click(function(){
ExcludeTextSearch();
});
});
function ExcludeTextSearch(){
jQuery("#textSearch").val("");
var fullUrl = window.location.href;
if (fullUrl.indexOf("?") >= 0){
fullUrl = fullUrl + "&";
}else{
fullUrl = fullUrl + "?";
}
fullUrl = fullUrl + "text=";
prestashop.emit("updateFacets",fullUrl);
jQuery("#clearTextSearch").fadeOut();
}
function contrastModeBackgroundWhite(){
$(".contrastModeBackground").children().attr('style', 'background-color: transparent !important');
$(".contrastModeBackground").attr('style', 'background-color: transparent !important')
}
function removecontrastModeBackgroundWhite(){
$(".contrastModeBackground").children().removeAttr('style');
$(".contrastModeBackground").removeAttr('style')
}
// JP
$(document).on('click', '.fancybox-material-controls', function() {
$('html').animate({scrollTop: $('.pp_stick_parent').offset().top - 150});
priceDisplay = parseFloat($('.current-price').text().replace(/[^0-9\,.]/g, '')).toFixed(2);
$.fancybox({
minWidth: 800,
maxWidth: 1000,
padding: 0,
content: '<h3 style="text-align: center; padding:10px; margin: 10px 0 20px 0;">Wybierz materiał</h3><div class="col-xs-12 material-canvas" style="padding:20px;"><div class="col-xs-3"><img src="https://newwalls.pl/img/cms/CANVAS_prev.jpg"></div><div class="col-xs-9">Tapeta winylowa na fizelinie Canvas<br/><div class="text"><p>Strukturalna tapeta winylowa na podkładzie filzelinowym o&nbsp;strukturze płótna. Wystarczy rozsmarować klej na ścianie! Jest szybkoschnąca, odporna na zarysowania i&nbsp;rozerwanie. Posiada klasę ochrony przeciwpożarowej wg normy DIN EN 13501-1: C-s1,d0 (trudno palne). Użyta do produkcji wyrobu celuloza posiada certyfikat FSC a&nbsp;gotowa tapeta oznaczenie CE oraz atest higieniczny.</p><p>Cechy charakterystyczne:</p><p>gramatura: ok. 185 g/m2;</p><p>grubość: ok. 340 µm;</p><p>łatwa do usunięcia bez pozostawiania śladów po zakończeniu eksploatacji,</p><p>odporna na uderzenia i&nbsp;pęknięcia,</p><p>nie zawiera PCW,</p><p>oznaczenie CE -&nbsp;EN 15102:2007+A1:2011,</p><p>atest higieniczny</p><p>klasyfikacja ogniowa wg normy EN 13501-1 dla niezadrukowanego i&nbsp;zadrukowanego materiału (klasa: C&nbsp;- s1, d0 /&nbsp;materiał trudno palny</p></div><br/><button id="fancy-material-btn" class="btn" data-value="9">Wybierz (' + priceDisplay + ' PLN/m2) <i class="material-icons">chevron_right</i></button></div></div><div class="col-xs-12 material-sand" style="background: #dfdfdf; padding:20px;"><div class="col-xs-3"><img src="https://newwalls.pl/img/cms/SAND_prev.jpg"></div><div class="col-xs-9">Tapeta winylowa na fizelinie Sand<br/><div class="text"><p>Strukturalna tapeta winylowa na podkładzie filzelinowym o&nbsp;strukturze płótna. Wystarczy rozsmarować klej na ścianie! Jest szybkoschnąca, odporna na zarysowania i&nbsp;rozerwanie. Posiada klasę ochrony przeciwpożarowej wg normy DIN EN 13501-1: C-s1,d0 (trudno palne). Użyta do produkcji wyrobu celuloza posiada certyfikat FSC a&nbsp;gotowa tapeta oznaczenie CE oraz atest higieniczny.</p><p>Cechy charakterystyczne:</p><p>gramatura: ok. 185 g/m2;</p><p>grubość: ok. 340 µm;</p><p>łatwa do usunięcia bez pozostawiania śladów po zakończeniu eksploatacji,</p><p>odporna na uderzenia i&nbsp;pęknięcia,</p><p>nie zawiera PCW,</p><p>oznaczenie CE -&nbsp;EN 15102:2007+A1:2011,</p><p>atest higieniczny</p><p>klasyfikacja ogniowa wg normy EN 13501-1 dla niezadrukowanego i&nbsp;zadrukowanego materiału (klasa: C&nbsp;- s1, d0 /&nbsp;materiał trudno palny</p></div><br/><button id="fancy-material-btn" class="btn" data-value="8">Wybierz (' + priceDisplay + ' PLN/m2)<i class="material-icons">chevron_right</i></button></div></div>'
});
});
$(document).on('click', '.fancybox-size-controls', function() {
console.log('t');
$('#checkbox-piece').prop('checked', true);
$('#checkbox-piece').trigger('change');
$('html').animate({scrollTop: $('.pp_stick_parent').offset().top - 100});
$.fancybox({
maxWidth: 600,
minHeight: 420,
padding: 0,
content: '<h3 style="text-align: center; padding:10px; margin: 10px 0 20px 0;">Wymiary tapety</h3><div class="fancy-piece-size-values" style="padding:10px; text-align: center;"><label for="fancy-piece-width">Szerokość</label><input type="number" min="50" max="500" value="'+$('#piece-width').val()+'" id="fancy-piece-width" style="padding: 5px; text-align: center; margin: 0 10px;"><span class="fancy-piece-divider">X</span><input type="number" min="50" max="300" value="'+$('#piece-height').val()+'" id="fancy-piece-height" style="padding: 5px; text-align: center; margin: 0 10px;"><label for="piece-height">Wysokość</label><p style="margin-bottom:0px"><small>&nbsp;</small><small class="valid-width-alert" style="display:none">Proszę o podanie szerokości z przedziału od 50 do 500.</small><small class="valid-height-alert" style="display:none">Proszę o podanie wysokości z przedziału od 50 do 300.</small><small class="valid-alert" style="display:none">Proszę o podanie wysokości i szerokości oba pola są wymagane</small></p></div><div style="background: #dfdfdf; padding: 10px;margin: 10px 0 20px 0; text-align: center; font-size:11px;"><strong>Dodaj 3-6 cm na dodatkowy margines</stronsag><br/>Ponieważ ściany i sufit często nie są całkowicie równe, najlepiej dodać od trzech do sześciu centymetrów do zmierzonej szerokości i wysokości. Będą one stanowić dodatkowy margines przydatny podczas montażu tapety.</div><div class="button-content" style="text-align: center; width:100%; margin: 20px 0 20px 0;"><button id="fancy-piece-btn" class="btn">Pokaż tapetę i cenę <i class="material-icons">chevron_right</i></button></div>'
});
});
$(document).on('change', '#fancy-piece-width', function() {
if (jQuery('#fancy-piece-width').val() === '') {$('.valid-alert').show(); $('.valid-width-alert').hide();}
else if (jQuery('#fancy-piece-width').val() > 500 || jQuery('#fancy-piece-width').val() < 50) {$('.valid-alert').hide(); $('.valid-width-alert').show();}
else {
$('.valid-alert').hide();
$('.valid-width-alert').hide();
$('#piece-width').val($('#fancy-piece-width').val());
$('#piece-width').trigger('change');
$('#piece-size-view').html($("#piece-width").val()+'x'+$("#piece-height").val());
}
});
$(document).on('change', '#fancy-piece-height', function() {
if (jQuery('#fancy-piece-height').val() === '') {$('.valid-alert').show(); $('.valid-height-alert').hide();}
else if (jQuery('#fancy-piece-height').val() > 300 || jQuery('#fancy-piece-height').val() < 50) {$('.valid-alert').hide(); $('.valid-height-alert').show();}
else {
$('.valid-alert').hide();
$('.valid-height-alert').hide();
$('#piece-height').val($('#fancy-piece-height').val());
$('#piece-height').trigger('change');
$('#piece-size-view').html($("#piece-width").val()+'x'+$("#piece-height").val());
}
});
$(document).on('click', '#fancy-material-btn', function(){
$("#group_5").val($(this).data('value')).change();
$.fancybox.close();
$('.fancybox-material-controls strong').text($('#group_5').find('option:selected').text());
setTimeout(function() {$('#checkbox-piece').trigger('change');
$("#piece").css('top', parseInt($('.piece-top-positon').html())+"px");
jQuery("#piece").css('left', parseInt($('.piece-left-positon').html())+"px");
jQuery("#piece").css("background-position", parseInt('-'+$('.piece-left-positon').html())+"px "+parseInt('-'+$('.piece-top-positon').html())+"px");
}, 2000);
});
$(document).on('click', '#fancy-piece-btn', function(){
if(jQuery('#fancy-piece-width').val() > 500 || jQuery('#fancy-piece-width').val() < 50 || jQuery('#fancy-piece-height').val() > 300 || jQuery('#fancy-piece-height').val() < 50)
{$('#fancy-piece-weight').trigger('change'); $('#fancy-piece-height').trigger('change');}
else
$.fancybox.close();
});
$('#cart').ready(function() {
$('.customization-modal').each(function(index, element){
valArray = $.trim($(this).find('.value').html()).split(" ");
valDif = $(this);
console.log(valArray);
$.each(valArray, function(dd, element){
console.log();
if (dd == 1)
$(valDif).find('.power').css('width', parseFloat(element.replace(/[^0-9\.]/g, ''))*100+'px');
if (dd == 1)
$(valDif).find('.power').css('height', parseFloat(element.replace(/[^0-9\.]/g, ''))*100+'px');
if (dd == 14)
$(valDif).find('.power').css('background-position-x', "-"+parseFloat(element.replace(/[^0-9\.]/g, ''))+'px');
if (dd == 15)
$(valDif).find('.power').css('background-position-y', "-"+parseFloat(element.replace(/[^0-9\.]/g, ''))+'px');
});
});
});