var SPMaskBehaviorFlyer = function (val) {
return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
};
var spOptionsFlyer = {
onKeyPress: function (val, e, field, options) {
field.mask(SPMaskBehaviorFlyer.apply({}, arguments), options);
}
};
var form = {
texts: [],
inputs: [],
endereco:{
0:{
nome:'SÃO PAULO (ADM BENS)',
address1:'Avenida das Nações Unidas, 18.001',
address2:'04795-900 - Santo Amaro',
address3:'São Paulo - SP',
address4:'Brasil',
},
1:{
nome:'CLARIANT P&C - SUZANO',
address1:'Av. Jorge Bei Maluf, 2.165',
address2:'08686-000 - Vila Theodoro',
address3:'Suzano - SP',
address4:'Brasil',
},
2:{
nome:'SÃO PAULO (LABORATÓRIO)',
address1:'Rua Bento Branco de Andrade Filho, 488',
address2:'04757-000 - Vila Almeida',
address3:'São Paulo - SP',
address4:'Brasil',
},
3:{
nome:'BELO HORIZONTE',
address1:'Avenida Portugal, 3.899',
address2:'31710-400 - Itapoã',
address3:'Belo Horizonte - MG',
address4:'Brasil',
},
4:{
nome:'JACAREÍ',
address1:'Avenida Industrial, 802',
address2:'12321-500 - Rio Abaixo',
address3:'Jacareí - SP',
address4:'Brasil',
},
5:{
nome:'MACAÉ',
address1:'Avenida Pref. Aristeu Ferreira da Silva, 2.121',
address2:'27930-070 - Novo Cavaleiros',
address3:'Macaé - RJ',
address4:'Brasil',
},
6:{
nome:'NITEROI - RJ',
address1:'Ilha do Viana, s/nº',
address2:'24110-240 - Barreto',
address3:'Niterói - RJ',
address4:'Brasil',
},
7:{
nome:'CLARIANT S/A - SUZANO',
address1:'Avenida Jorge Bey Maluf, 2.163',
address2:'08686-000 - Vila Theodoro',
address3:'Suzano - SP',
address4:'Brasil',
},
8:{
nome:'RIO DAS OSTRAS',
address1:'Rua do Sondador, s/n Lote 4 A, Quadra H Zen',
address2:'28899-010',
address3:'Rio das Ostras - RJ',
address4:'Brasil',
},
9:{
nome:'RIO DE JANEIRO',
address1:'Av. João Cabral de Mello Neto, 850 - CEO Bl 03 - S706 e 707',
address2:'22.775-057 - Barra da Tijuca',
address3:'Rio de Janeiro - RJ',
address4:'Brasil',
},
10:{
nome:'SÃO PAULO',
address1:'Avenida das Nações Unidas, 18.001',
address2:'04795-900 - Santo Amaro',
address3:'São Paulo - SP',
address4:'Brasil',
},
11:{
nome:'VITÓRIA DA CONQUISTA - BA',
address1:'Estrada Fazenda Santa Helena, s/nº',
address2:'45000-970',
address3:'Vitória da Conquista - BA',
address4:'Brasil',
},
},
address:1,
key:0,
id_model:0,
appendForm:'#produto-form-personalizar .panel-body',
buttonHandler:'#pagina-produto #produto-resumo button.confirm',
init: function(){
self = this;
$.ajax({
url: "https://editor.print-one.com.br/api/modelo/"+this.id_model+"/layers/?key="+this.key,
type: "GET",
dataType:'json',
beforeSend: function () {
},
success: function (objJSON) {
self.texts = objJSON.layers.texts
self.configForm();
self.createContainer();
self.createForm();
},
error: function (objXHR, txtStatus, txtErro) {
console.error('erro', objXHR);
},
complete: function (xhr) {
}
});
},
configForm: function () {
for (let key = 0; key < this.texts.length; key++) {
const element = this.texts[key].name;
const elementID = this.texts[key].name.replace(' ', '').toLowerCase();
const mask = element.toLowerCase().indexOf('telefone') != -1 || element.toLowerCase().indexOf('celular') != -1 ? true : false;
const maxlength = element.toLowerCase().indexOf('nome') != -1 ? 20 : false;
const type = element.toLowerCase().indexOf('endereco') != -1 ? 'select' : 'text';
const label = element.toLowerCase().indexOf('endereco') != -1 ? 'Endereço' : this.capitalize(element.replace(/\#/g,''));
const value = element.toLowerCase().indexOf('endereco') != -1 ? this.endereco : '';
if (element.toLowerCase().indexOf('endereco4') == -1 & element.toLowerCase().indexOf('endereco2') == -1 & element.toLowerCase().indexOf('endereco3') == -1){
if (this.findArray(elementID)){
this.inputs.push({
name:elementID,
label: label,
match:"#"+elementID+"#",
value:value,
required: true,
id: elementID,
type: type,
mask: mask,
maxlength, maxlength
});
}
}
}
},
save:function(){
self = this;
var validate = true;
for (var i in self.inputs){
if(self.inputs[i].required && $('#'+self.inputs[i].id).val() == ''){
alert('Campo '+self.inputs[i].label+' obrigatório');
$('#'+self.inputs[i].id).focus();
validate = false;
break;
}else{
localStorage.setItem($('#'+self.inputs[i].id).data('match'),$('#'+self.inputs[i].id).val());
}
}
if(validate){
$(self.buttonHandler).click();
}
},
createContainer:function(){
$container = $('
');
$container.insertAfter('#produto-descricao-reduzida');
},
capitalize: function (string) {
string = string[0].toUpperCase() + string.slice(1);
//tem número na string? Ex: Telefone1, Telefone2...
hasNumber = string.match(/[0-9]/);
if(hasNumber){
//Separa para ficar Telefone 1, Telefone 2, Telefone 3
string = string.replace(hasNumber[0], ' ' + hasNumber[0]);
}
return string;
},
findArray: function (string) {
//Verifica se já existe um campo com o nome igual, se tiver não deixa criar o input
if (this.inputs.filter(p => p.name == string).length > 0){
return false;
}else{
return true;
}
},
createForm:function(){
self = this;
if(!self.inputs.length){
console.error('Nenhum input definido');
}else{
for (var i in self.inputs){
$(self.appendForm).append(self.getInput(self.inputs[i]));
}
$button = $('');
$button.css({
'position':'absolute',
'top':0,
'left':0,
'right':0,
'bottom':0,
'z-index':1,
'cursor':'pointer'
}).click(function(event) {
event.preventDefault();
form.save();
});
$(self.buttonHandler).css({
'position':'relative'
}).parent().css({
'position':'relative'
}).append($button)
}
},
getInput:function(input, key){
$field = $('');
var $input;
if(input.type == 'text'){
$input = $('');
}
if(input.type == 'select'){
$input = $('');
for (var i in input.value) {
value = input.value[i].address1 + '#pula#' + input.value[i].address2 + '#pula#' + input.value[i].address3 + '#pula#' + input.value[i].address4
$input.append('');
}
}
$input.attr({
'name':input.name,
'id':input.id
}).data({
'match':input.match,
'required':input.required,
})
if(!!localStorage.getItem(input.match)){
$input.val(localStorage.getItem(input.match));
}
if(input.maxlength){
$input.attr({
'maxlength':input.maxlength,
}).data({
'maxlength':input.maxlength
})
}
var $label = $('');
$label.attr({
'for':input.id
}).text(input.label);
var $span;
if(input.maxlength){
$span = $(''+($input.val().length)+'/'+input.maxlength+'');
$input.on('input',function(){
max = $(this).data('maxlength');
current = $(this).val().length;
$(this).next('span').text(current+'/'+max);
})
}
if(input.mask !== false){
$input.mask(SPMaskBehaviorFlyer, spOptionsFlyer);
}
$field.append($label);
$field.append($input);
$field.append($span);
return $field;
}
}
$(document).ready(function(){
$('#safebrowsing').append('');
if($('#formProposta').length){
// $('#produto-resumo button.confirm b').text('')
}
if (document.URL.indexOf('produtos-detalhes') > 0 || document.URL.indexOf('produtos-editor') > 0) {
console.log("teste");
idProduto = document.URL.split("/");
$.ajax({
url: "http://developer.brochura.com.br/printone/loja_modelo_2013/loja/theme/nav/getEditorProduto.asp",
type: "POST",
dataType:'json',
data : {
idProduto : idProduto[5]
},
beforeSend: function () {
},
success: function (objJSON) {
console.log(objJSON);
if (objJSON.txtErro == ""){
form.key = objJSON.key;
form.id_model = objJSON.model;
form.init();
}else{
console.log(objJSON.txtErro);
}
},
error: function (objXHR, txtStatus, txtErro) {
console.log(objXHR);
},
complete: function (xhr) {
}
});
}
});
if(typeof EdPO == 'object'){
var FORM = {
endpoint:'https://editor.print-one.com.br/api/personalizacao/',
key:'',
texts:{},
models:['PTC','MDRT 3','MDRT 4','MDRT 3 PTC','MDRT 4 PTC','MDRT Member','MDRT Court','MDRT Member PTC','MDRT Court PTC'],
content:{
$:$(''),
style:{
'width':'25%',
'float':'left',
'background-color':'#424242',
'border-right':'1px solid #000',
'position':'relative'
}
},
$submitBtn:{
$:'',
style:{
'background':'#00c853',
'border':'none',
'text-tranform':'uppercase',
'text-align':'center',
'width':'100%',
'padding':'20px',
'font-size':'18px',
'color':'#FFF'
}
},
$form:'',
$editor:$('#'+EdPO.config.iframe),
label:{
$:$(''),
style:{
'display':'block',
'color':'#FFF',
}
},
input:{
$:$(''),
style:{
'color':'#FFF',
'display':'block',
'margin-bottom':'15px',
'width':'100%',
'background-color':'transparent',
'border':'none',
'border-bottom':'2px solid #26a69a',
'box-shadow':'none',
'padding':'7px 0px'
}
},
select:{
$:$(''),
style:{
'color':'#FFF',
'display':'block',
'margin-bottom':'15px',
'width':'100%',
'background-color':'transparent',
'border':'none',
'border-bottom':'2px solid #26a69a',
'box-shadow':'none',
'padding':0,
'height':36
}
},
masks:{
'Telefone':{
meiomask:{
type:'fixed',
mask:'(nn) nnnn-nnnn',
autoTab:false,
},
},
'Celular':{
meiomask:{
type:'fixed',
mask:'(nn) nnnnn-nnnn',
autoTab:false,
},
},
},
init:function(){
FORM.getTexts();
},
qrcode:false,
getTexts:function(){
$.ajax({
url:FORM.endpoint+EdPO.config.model,
type:'GET',
dataType:'json',
data:{
key:EdPO.config.key
},
success:function(data){
FORM.texts = data.personalizacao[0].texts;
FORM.form();
}
});
},
form:function(){
FORM.$editor = $('#'+EdPO.config.iframe);
FORM.$editor.css({
'width':'75%'
});
for(var i in FORM.texts){
text = FORM.texts[i];
name = text.match.charAt(0).toUpperCase() + text.match.substr(1);
$input = FORM.input.$.attr({'id':'input-'+i,'name':name}).css(FORM.input.style).clone().data({layer:text.name,match:'#'+text.match+'#',name:name}).attr({'required':'required'});
v = FORM.hasData(name);
if(v !== false){
$input.val(v.replace).data({'match':r.match});
}
if(typeof FORM.masks[name] == 'object'){
$input.setMask(FORM.masks[name].meiomask);
}
$label = FORM.label.$.text(name).attr({'for':'input-'+i}).css(FORM.label.style).clone();
if(name == 'Email' || name == 'E-mail'){
$input.attr('type','email');
}
FORM.content.$.find('.card-body').append($label);
FORM.content.$.find('.card-body').append($input);
}
FORM.content.$.find('.card-head').css({
position:'absolute',
padding:'22px 15px',
width:'100%',
top:0,
'border-bottom':'1px solid #000'
});
FORM.content.$.find('.card-body').css({
position:'absolute',
top:64,
bottom:110,
padding:'15px',
width:'100%',
'overflow-y':'auto'
});
FORM.content.$.find('.card-footer').css({
position:'absolute',
padding:'15px',
width:'100%',
bottom:0,
height:110,
'background-color':'#212121'
});
FORM.content.$.height(FORM.$editor.height());
FORM.content.$.css(FORM.content.style);
FORM.content.$.insertBefore(FORM.$editor);
FORM.$submitBtn.$ = $('#btn-put-data-on-model');
FORM.$submitBtn.$.css(FORM.$submitBtn.style);
FORM.$form = $('#submit-form-to-editor');
FORM.$form.submit(function(e){
e.preventDefault();
FORM.apply();
});
// FORM.$form.submit();
},
vcard:{
data:{
'key':'B28752184046517F27738FA6CC739F84E84670EC5EF0A4F71B2E9D942EFE2458',
'width':2000,
},
endpoint:'http://developer.brochura.com.br/pergraf/qrcode/api/vcard',
},
apply:function(){
FORM.$form.find('input').each(function(index,input){
FORM.vcard.data[$(this).data().name.toLowerCase()] = $(this).val();
EdPO.replaceTextLayer($(this).data().layer,$(this).data().match,$(this).val());
$(this).data().match = $(this).val();
});
// EdPO.setImageLayer('qrcode',{'url':'https://cdn-images-1.medium.com/max/1200/0*zPG9dqz508rmRR70.','position':'contain'})
$.ajax({
url: FORM.vcard.endpoint,
type: 'POST',
dataType: 'json',
data: FORM.vcard.data,
crossDomain:true,
success:function(data){
EdPO.setImageLayer('qrcode',{'url':data.url,'position':'contain'})
},
error:function(data){
console.log(data);
},
});
},
hasData:function(match){
r = false;
if(Object.keys(EdPO.config.texts).length > 0){
for(var i in EdPO.config.texts){
t = EdPO.config.texts[i];
if(t.match == '#'+match.toLowerCase()+'#'){
r = t;
break;
}
}
}
return r;
}
}
}
$(function(){
if(typeof EdPO == 'object'){
if(EdPO.config.model == 1246){
EdPO.ready = function(){
FORM.init();
}
}
}
});