jQuery(function($){
'use strict';
;(function(document, window, index){
var isAdvancedUpload=function(){
var div=document.createElement('div');
return(( 'draggable' in div)||('ondragstart' in div&&'ondrop' in div) )&&'FormData' in window&&'FileReader' in window;
}();
var forms=document.querySelectorAll('.box');
Array.prototype.forEach.call(forms, function(form){
var input=form.querySelector('input[type="file"]'),
label=form.querySelector('label'),
errorMsg=form.querySelector('.box__error span'),
restart=form.querySelectorAll('.box__restart'),
droppedFiles=false,
showFiles=function(files){
label.textContent=files.length > 1 ?(input.getAttribute('data-multiple-caption')||'').replace('{count}', files.length):files[ 0 ].name;
},
triggerFormSubmit=function(){
var event=document.createEvent('HTMLEvents');
event.initEvent('submit', true, false);
form.dispatchEvent(event);
};
var ajaxFlag=document.createElement('input');
ajaxFlag.setAttribute('type', 'hidden');
ajaxFlag.setAttribute('name', 'ajax');
ajaxFlag.setAttribute('value', 1);
form.appendChild(ajaxFlag);
input.addEventListener('change', function(e){
showFiles(e.target.files);
});
if(isAdvancedUpload){
form.classList.add('has-advanced-upload');
[ 'drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragleave', 'drop' ].forEach(function(event){
form.addEventListener(event, function(e){
e.preventDefault();
e.stopPropagation();
});
});
[ 'dragover', 'dragenter' ].forEach(function(event){
form.addEventListener(event, function(){
form.classList.add('is-dragover');
});
});
[ 'dragleave', 'dragend', 'drop' ].forEach(function(event){
form.addEventListener(event, function(){
form.classList.remove('is-dragover');
});
});
form.addEventListener('drop', function(e){
e.dataTransfer.clearData();
droppedFiles=e.dataTransfer.files;
showFiles(droppedFiles);
});
}
$('body').on('click', '.finalized_order', function(e){
$('.popup-wrapper .loader').css('display','block');
var ajaxData=new FormData(form);
if(typeof $('input[name=files]')[0].files[0]!='undefined'){
ajaxData.append('image', $('input[name=files]')[0].files[0]);
if(typeof $('input[name=files]')[0].files[0]=='undefined'){
$('.popup-wrapper .error').show().delay(2000).slideUp();
return false;
}}else if(droppedFiles){
Array.prototype.forEach.call(droppedFiles, function(file){
ajaxData.append('image', file);
});
if(typeof file=='undefined'){
$('.popup-wrapper .error').show().delay(2000).slideUp();
return false;
}}
ajaxData.append('action', 'kwp_yape_peru_qr_code');
$.ajax({
url:kwajaxurl.ajaxurl,
type:'POST',
processData: false,
contentType: false,
data: ajaxData,
success: function(response){
if(response=='yes'){
$('.place-order button, #place_order').removeClass('yape_peru');
$('.popup-wrapper').hide();
$('.place-order button, #place_order').trigger('click');
}else{
$("form.box")[0].reset();
$('.popup-wrapper .error').show().html('Por favor solo se permite subir imagen').delay(2000).slideUp();
}
$('.popup-wrapper .loader').css('display','none');
}});
});
form.addEventListener('submit', function(e){
if(form.classList.contains('is-uploading') ) return false;
form.classList.add('is-uploading');
form.classList.remove('is-error');
if(isAdvancedUpload){
e.preventDefault();
var ajaxData=new FormData(form);
if(droppedFiles){
Array.prototype.forEach.call(droppedFiles, function(file){
ajaxData.append(input.getAttribute('name'), file);
});
}
var ajax=new XMLHttpRequest();
ajax.open(form.getAttribute('method'), form.getAttribute('action'), true);
ajax.onload=function(){
form.classList.remove('is-uploading');
if(ajax.status >=200&&ajax.status < 400){
var data=JSON.parse(ajax.responseText);
form.classList.add(data.success==true ? 'is-success':'is-error');
if(!data.success) errorMsg.textContent=data.error;
}
else alert('Error. Please, contact the webmaster!');
};
ajax.onerror=function(){
form.classList.remove('is-uploading');
alert('Error. Please, try again!');
};
ajax.send(ajaxData);
}else{
var iframeName='uploadiframe' + new Date().getTime(),
iframe=document.createElement('iframe');
$iframe=$('<iframe name="' + iframeName + '" style="display: none;"></iframe>');
iframe.setAttribute('name', iframeName);
iframe.style.display='none';
document.body.appendChild(iframe);
form.setAttribute('target', iframeName);
iframe.addEventListener('load', function(){
var data=JSON.parse(iframe.contentDocument.body.innerHTML);
form.classList.remove('is-uploading')
form.classList.add(data.success==true ? 'is-success':'is-error')
form.removeAttribute('target');
if(!data.success) errorMsg.textContent=data.error;
iframe.parentNode.removeChild(iframe);
});
}});
Array.prototype.forEach.call(restart, function(entry){
entry.addEventListener('click', function(e){
e.preventDefault();
form.classList.remove('is-error', 'is-success');
input.click();
});
});
input.addEventListener('focus', function(){ input.classList.add('has-focus'); });
input.addEventListener('blur', function(){ input.classList.remove('has-focus'); });
});
}(document, window, 0));
$(document).ajaxComplete(function(event, request, options){
var selectedValue=$('form.checkout .wc_payment_methods input[name^="payment_method"]:checked').val();
if(selectedValue=='wocommerce_yape_peru'){
$('.place-order button, #place_order').addClass('yape_peru');
}});
$('form.checkout').on('change', 'input[name^="payment_method"]', function(){
var choosenPaymentMethod=$('input[name^="payment_method"]:checked').val();
if(choosenPaymentMethod=='wocommerce_yape_peru'){
$('.place-order button, #place_order').addClass('yape_peru');
}else{
$('.place-order button, #place_order').removeClass('yape_peru');
}});
$('body').on('click', '.yape_peru', function(e){
e.preventDefault();
$('.popup-wrapper').show();
$('.first-step .woocommerce-Price-amount').remove();
$('.first-step').append('<button class="btn-continue btn_submit">Scannez le code et cliquez ici</button>');
$('.first-step .price').append($('.order-total .woocommerce-Price-amount').first().clone());
});
$('.popupCloseButton').click(function(){
$('.second-step').css('display','none');
$('.popup-wrapper .error').css('display','none');
$('.first-step').css('display','block');
$('.popup-wrapper').hide();
});
$('.first-step').on('click', '.btn-continue', function (){
$('.second-step').show();
$('.first-step').hide();
});
$('.box__button').click(function(e){
e.preventDefault();
$('.box__file').trigger('click');
});
});