// Pattern per il controllo di validita' dei campi
var no_num_pattern = /[\d\x00-\x1F\!\"\#\$\%\&\(\)\*\\\:<=>?\[\]^`{\|}~\r\n\f\@]/;
var telephone_pattern = /^[\d \-\/\+\.]+$/i;
var generic_pattern = /[\x00-\x1F\!\"\#\$\%\&\(\)\*\\\:<=>?\[\]^`{\|}~\r\n\f\@]/;
var mail_pattern = /^([\w-][\w-\.]*(?:\+[\w-\.]+)?)@([a-zA-Z0-9][\w-\.]*)\.([a-zA-Z]{2,20})$/;
function doSeasonTicketSubmit(data) {
$('#formBasket #cmd').val('seasonTicket');
$('#formBasket #data').val(data);
$('#formBasket').submit();
}
function bloccaCarrello(alt) {
ok = true;
$('.invalid').hide();
if ($('#cartCustomer').length)
ok = verifica_customer() && ok;
if ($('#checkRegolamento').length)
ok = checkRegolamentoBasket() && ok;
if ($('#formBasket #spedizione').length > 0 &&
$('#formBasket #spedizione').val() == 1) {
ok = verifica_anagrafica_sped() && ok;
// aggiungo le alla query string le transazioni da spedire
if (ok) AddTranSped();
}
if (!ok) {
alert (frasi.carrello['completaAnagrafica']);
return;
}
ok = true;
$("div[data-role='fanticket-picture']").each(function() {
if ($(this).attr('data-layout') == '0') {
$(this).parent().addClass("row-warning");
ok = false;
}
});
if (!ok) {
alert(frasi.carrello['selezionaFanticket']);
return;
}
ok = true;
$("[data-role='delivery-box']").each(function() {
if ($(this).find("[data-role='delivery-mode'].ui-state-active").length == 0) {
$(this).find('.delivery-buttons').addClass('row-warning');
ok = false;
}
});
if (!ok) {
alert(frasi.carrello['selezionaSpedizione']);
return;
}
if (alt == 'amazonPay') $('#amazonclick').val(3);
trackEvent('click', {event_action: 'click', event_category: 'Basket CONFIRM', event_label: 'CARRELLO' });
$('#formBasket #cmd').val('bloccaCarrello');
$('#formBasket').submit();
}
function delFromBasket() {
if ($('.to-delete').length > 0 && $('.to-delete:checked').length == 0)
return;
var del = window.confirm(frasi.carrello['delFromBasket']);
if (del) {
$('#formBasket #cmd').val('cancellaCarrello');
$('#formBasket').submit();
}
}
function emptyBasket() {
return window.confirm(frasi.carrello['emptyBasket']);
}
function altriAcquisti() {
alert(frasi.carrello['altriAcquisti']);
window.location = '/';
}
//Allinea i checkbox della stessa transazione sulla cancellazione dal carrello
function deleteAllInTran(obj, code) {
checked = obj.checked;
del = document.getElementsByName('del[]');
exp = new RegExp('^' + code +',.+');
for (var i = 0 ; i < del.length ; ++i) {
if (del[i].type != 'checkbox') continue;
if (exp.test(del[i].value)) del[i].checked = checked;
}
}
function checkFidelityCode() {
for (var i = 0 ; i < $('#nTicket').val(); ++i) {
if ($('#bscode_' + i).length && $('#bscode_' + i).val().length==0) {
alert(frasi.tabellaPrezzi['checkFidelityCode']);
return false;
}
}
$('#fidelityCardTable').submit();
}
function verifica_customer() {
// Pattern per il controllo di validita' dei campi
error = false;
$('.customer_error').hide();
if ($('#customer_nome').val().length == 0) {
error = true;
$('#customer_nome_error').html(frasi.personalDetails['required']).show();
}
else if ($('#customer_nome').val().length < 2 || no_num_pattern.test($('#customer_nome').val())) {
error = true;
$('#customer_nome_error').html(frasi.personalDetails['no_num']).show();
}
if ($('#customer_cognome').val().length == 0) {
error = true;
$('#customer_cognome_error').html(frasi.personalDetails['required']).show();
}
else if ($('#customer_cognome').val().length < 2 || no_num_pattern.test($('#customer_cognome').val())) {
error = true;
$('#customer_cognome_error').html(frasi.personalDetails['no_num']).show();
}
if ($('#customer_email').val().length == 0) {
error = true;
$('#customer_email_error').html(frasi.personalDetails['required']).show();
}
else if ($('#customer_email').val().match(mail_pattern)==null || $('#customer_email').val().length <= 3 || $('#customer_email').val().length > 70) {
error = true;
$('#customer_email_error').html(frasi.personalDetails['email']).show();
}
if ($('#customer_company').length && $('#customer_company').val().length == 0) {
error = true;
$('#customer_company_error').html(frasi.personalDetails['required']).show();
}
if ($('#customer_cf').length && $('#customer_cf').val().length<1 ) {
error = true;
$('#customer_cf_error').html(frasi.personalDetails['required']).show();
}
if ($('#guest').length) {
$('.consent').each( function() {
if ($(this).hasClass('required') &&
!$('[name="'+$(this).attr('name')+'"]:checked').length &&
$('[name="'+$(this).attr('name')+'"]:checked').val() != 1) {
$('[id="'+$(this).attr('name')+'_msg"]').html(frasi.carrello['required']).show();
error= true;
}
});
}
if (typeof verifica_customer_addcontrol === "function") {
if (!verifica_customer_addcontrol())
error = true;
}
if (error) return false;
return true;
}
var zoomLoaded = false;
function openMap(url) {
$('#mappaPosti').find('#urlMappa').attr('src', url).attr('data-zoom-image', url);
$('#mappaPosti #map_detail_title').html('');
$('#mappaPosti').modal('show');
$("#urlMappa").load(function() {
if (!zoomLoaded) {
zoomLoaded = true;
setTimeout(function() {
//if ($('#urlMappa').height() > 480) {
$('#urlMappa').elevateZoom({
zoomType : "lens",
lensShape : "round",
lensSize : 300,
scrollZoom: true
});
//}
}, 1000);
}
});
$('#mappaPosti').on('hide.bs.modal', function(e) {
$('.zoomContainer').remove();
$('#urlMappa').removeData('elevateZoom');
zoomLoaded = false;
});
}
function setInsurance(code) {
var item = $('#assicurazione_'+code);
if (item !== undefined) {
$.ajax({
url: 'wmsbackend.php',
method: 'POST',
data: {
cmd: 'setInsurance',
code: code,
system: item.data("system"),
action: (item.data('status') != '1' ? 1 : 0)
},
success:function(ret) {
if (ret.length > 0) {
alert (ret);
return;
}
var tranTotal = $("[data-role='tran_total'][data-args='"+code+"']");
var cartServices = $("#cart_services");
if (item.data('status') != '1') {
item.data('status', '1');
$('#assicurazione_on_'+code).addClass('hidden');
$('#assicurazione_off_'+code).removeClass('hidden');
// aggiungo una riga al tbody con l'item
$("[data-role='seat'][data-tran='"+code+"']").each(function() {
$(this).append("
" +
$("[data-role='insurance-title'][data-id='"+code+"']").html() +
" | " +
item.data('display-price') + " |
");
});
tranTotal.data('amount', fprezzo(toPagePrice(item.data('price'), tranTotal.data('amount'))));
tranTotal.html(currency_sign+" " + tranTotal.data('amount'));
$("[data-role='cart-services']").val(fprezzo(toPagePrice(item.data('price'), cartServices.html())));
$("#cart_services").html($("[data-role='cart-services']").val());
// mostro il badge di assicurazione aggiunta
$(".insurance-badge[data-id='"+code+"']").removeClass('hidden');
} else {
item.data('status', '0');
$('#assicurazione_on_'+code).removeClass('hidden');
$('#assicurazione_off_'+code).addClass('hidden');
// tolgo le righe con l'item
$("[data-role='seat'][data-tran='"+code+"']").find("[data-role='insurance']").remove();
tranTotal.data('amount', fprezzo(toPagePrice(item.data('price'), tranTotal.data('amount'), false)));
tranTotal.html(currency_sign+" " + tranTotal.data('amount'));
$("[data-role='cart-services']").val(fprezzo(toPagePrice(item.data('price'), cartServices.html(), false)));
$("#cart_services").html($("[data-role='cart-services']").val());
// rimuovo il badge di assicurazione
$(".insurance-badge[data-id='"+code+"']").addClass('hidden');
}
basketTotal();
},
error:function(ret) {
alert(frasi.carrello['erroreAggiornamento']);
}
});
}
}
function basketTotal() {
var total = parseInt($("[data-role='cart-price']").val().replace(/,/,'')) +
parseInt($("[data-role='cart-presale']").val().replace(/,/,'')) +
parseInt($("[data-role='cart-commission']").val().replace(/,/,'')) +
parseInt($("[data-role='cart-services']").val().replace(/,/,'')) +
parseInt($("[data-role='cart-shipping']").val().replace(/,/,''));
$('#bsk_amount').val(total);
$('#bsk_amount2').html(fprezzo(padStringAtStart(String(total),3,'0')) + ' '+currency_sign);
}
function toPagePrice(numVal, pageVal, add) {
var newVal = String(pageVal).replace(/,/,'');
if (add === undefined || add == true)
return padStringAtStart(String(parseInt(newVal) + numVal),3,'0');
return padStringAtStart(String(parseInt(newVal) - numVal),3,'0');
}
function padStringAtStart(text, number, char) {
while (text.length < number) {
text = char + text;
}
return text;
}
function showFanticketPicture(seat) {
var ref = $('#fanticket_'+seat.data('id'));
var ids = String(ref.data('ids')).split(';');
var descs = ref.data('descs').split(';');
var picts = ref.data('images').split(';');
$('#fanticketSelector').empty();
for (var i=0; i < ids.length; i++) {
var container = document.createElement('div');
container.className = 'thumbnail fanticket fanticket-selection';
var img = document.createElement('img');
img.src = serverImagePath + picts[i];
img.setAttribute('data-id', ids[i]);
img.setAttribute('title', descs[i]);
img.className = 'img-responsive';
container.appendChild(img);
container.onclick = function() {
setFanticketPicture(this.firstChild.getAttribute('data-id'), this.firstChild.getAttribute('src'), seat.data('seat'), seat.data('id'), $("[data-id='"+seat.data('id')+"'][data-role='summary']").data('system'));
};
$('#fanticketSelector').append(container);
}
$('#graficaFanticket').modal('show');
}
function setFanticketPicture(ftId, pict, seatId, tranId, system) {
$.ajax({
url: 'wmsbackend.php',
method: 'POST',
data: {
cmd: 'setFanticket',
code: tranId,
seat: seatId,
system: system,
layout: ftId
},
success:function(ret) {
if (ret.length > 0) {
alert (ret);
return;
}
paintFanticketPicture(ftId, pict, seatId, tranId);
},
error:function(ret) {
alert(ret);
}
});
}
function paintFanticketPicture(ftId, pict, seatId, tranId) {
var pictDiv = $("[data-role='fanticket-picture'][data-seat='" + seatId + "'][data-id='" + tranId + "']");
pictDiv.attr('data-layout', ftId);
pictDiv.html("");
$('#graficaFanticket').modal('hide');
pictDiv.parent().removeClass('row-warning');
}
function initFanticketButton(ctrl) {
// testo se i pulsanti sono da mostrare o nascondere
var ref = ctrl.data('id');
var enableAdd = false;
var enableRemove = false;
$("[data-role='seat'][data-tran='"+ref+"']").each(function() {
// verifico ogni posto
if ($(this).find("tr[data-role='special ticket']").length > 0) {
enableRemove = true;
} else {
enableAdd = true;
}
});
if (enableAdd) {
ctrl.find("[data-action='on']").show();
} else {
ctrl.find("[data-action='on']").hide();
}
if (enableRemove) {
ctrl.find("[data-action='off']").show();
} else {
ctrl.find("[data-action='off']").hide();
}
}
function setTranFanticket(ctrl, activate) {
var tranId = ctrl.data('id');
var info = $("#fanticket_" + tranId);
var parent = $("[data-role='fanticket-buttons'][data-id='" + tranId + "']")
var system = ctrl.data('system');
$("[data-role='seat'][data-tran='"+tranId+"']").each(function() {
var seatId = $(this).data('seat');
var service = $("[data-role='cart-services']");
var commission = $("[data-role='cart-commission']");
var presale = $("[data-role='cart-presale']");
var tranComm = $("[data-role='commission'][data-id='"+tranId+"']");
var tranTot = $("[data-role='tran_total'][data-args='"+tranId+"']");
if (activate) {
// verifico che non esista giĆ fanticket
if ($(this).find("tr[data-role='special ticket']").length == 0) {
var currSeat = $(this);
// aggiungo la riga fanticket
var row = document.createElement('tr');
row.setAttribute('data-role', 'special ticket');
var cell = document.createElement('td');
cell.innerHTML = info.data('name');
var btnFT = document.createElement('a');
btnFT.className = 'btn btn-primary btn-font text-uppercase';
btnFT.setAttribute('data-role', 'fanticket-display');
btnFT.setAttribute('data-seat', seatId);
btnFT.setAttribute('data-id', tranId);
btnFT.setAttribute('data-system', system);
btnFT.onclick = function() {
showFanticketPicture($(btnFT));
};
var btnGraph = parent.find("[data-role='fanticket-graphic-button']").clone();
btnGraph.removeClass('hidden');
btnFT.appendChild(btnGraph.get(0));
var ref = $('#fanticket_'+tranId);
var ids = String(ref.data('ids')).split(';');
var picts = ref.data('images').split(';');
var layout = getFanticketDefaultLayout(tranId);
if (ids.length > 1) {
var div = document.createElement('div');
div.className = 'pull-right';
div.appendChild(btnFT);
cell.appendChild(div);
}
var br = document.createElement('br');
cell.appendChild(br);
var br = document.createElement('br');
cell.appendChild(br);
var divGraph = document.createElement('div');
divGraph.setAttribute('data-seat', seatId);
divGraph.setAttribute('data-id', tranId);
divGraph.setAttribute('data-role','fanticket-picture');
divGraph.setAttribute('data-layout',layout);
cell.appendChild(divGraph);
var cellPrice = document.createElement('td');
cellPrice.className = 'text-right';
cellPrice.innerHTML = info.data('display-price');
// gestione tabella abbonamenti in cui ci va una cella iniziale vuota
if (currSeat.data('abbo') == '1') {
var emptycell = document.createElement('td');
emptycell.innerHTML = ' ';
row.appendChild(emptycell);
}
row.appendChild(cell);
row.appendChild(cellPrice);
currSeat.append(row);
// aggiorno il totale servizi
service.val(fprezzo(toPagePrice(info.data('price') + info.data('presale'), service.val())));
$('#cart_services').html(service.val());
// aggiorno il totale commissioni
commission.val(fprezzo(toPagePrice(info.data('commission'), commission.val())));
$('#cart_commission').html(commission.val());
// aggiorno i totali per tran
tranComm.data("val", toPagePrice(info.data('commission'), tranComm.data("val")));
tranComm.html(currency_sign+" " + fprezzo(tranComm.data("val")));
tranTot.data("amount", toPagePrice(info.data('commission') + info.data('price') + info.data('presale'), tranTot.data("amount")));
tranTot.html(currency_sign+" " + fprezzo(tranTot.data("amount")));
if (layout > 0) {
paintFanticketPicture(layout, serverImagePath + picts[0], seatId, tranId);
}
basketTotal();
initFanticketButton(parent);
} else {
basketTotal();
}
} else {
// verifico che esista fanticket
if ($(this).find("tr[data-role='special ticket']").length == 1) {
var currSeat = $(this);
// rimuovo il FT
currSeat.find("tr[data-role='special ticket']").remove();
// aggiorno il totale servizi
service.val(fprezzo(toPagePrice(info.data('price') + info.data('presale'), service.val(), false)));
$('#cart_services').html(service.val());
// aggiorno il totale commissioni
commission.val(fprezzo(toPagePrice(info.data('commission'), commission.val(), false)));
$('#cart_commission').html(commission.val());
// aggiorno i totali per transazione
tranComm.data("val",toPagePrice(info.data('commission'), tranComm.data("val"), false));
tranComm.html(currency_sign+" " + fprezzo(tranComm.data("val")));
tranTot.data("amount", toPagePrice(info.data('commission') + info.data('price') + info.data('presale'), tranTot.data("amount"), false));
tranTot.html(currency_sign+" " + fprezzo(tranTot.data("amount")));
basketTotal();
initFanticketButton(parent);
} else {
basketTotal();
}
}
});
}
function getFanticketDefaultLayout(tranId) {
var ref = $('#fanticket_'+tranId);
var ids = String(ref.data('ids')).split(';');
var layout = 0;
if (ids.length == 1) {
layout = ids[0];
}
return layout;
}
$(document).ready(function(){
$('.to-delete').click(function () {
t=0;
$('.to-delete').each(function (i) {
if ($(this).is(':checked'))
t=1;
})
if (t==0)
$('.btn-delete').attr('disabled', true);
else
$('.btn-delete').attr('disabled', false);
});
$("[data-role='insurance']").on('click', function() {
setInsurance($(this).data('id'));
});
$("[data-role='shipping']").on('click', function() {
basketTotal();
});
$("[data-role='fanticket-display']").on('click', function() {
showFanticketPicture($(this));
});
$("[data-role='fanticket-buttons']").each(function() {
initFanticketButton($(this));
});
$("[data-role='fanticket'][data-action]").on('click', function() {
setFanticket($(this));
});
$("input:checkbox.to-delete").on('click', function() {
$("#shopping-alert").fadeOut();
});
$("button.close").on("click", function() {
if ($(this).parent().is(".alert")) {
$(this).parent().fadeOut();
}
});
$('.map_details').on('click', function() {
openMap($(this).data('link'));
});
$(".warningTran").each(function() {
if ($(this).find('b').html().length > 0) {
$(this).parent().parent().find('.map_details').trigger('click');
$('#map_detail_title').html($(this).html());
}
});
});