$(document).ready(function() { calculate = function() { var selected = $("#seat-map td.selected").length, totalPrice = $("#seat-price").html() * selected, maxSeats = $("#max-seats").val(), availableSeats = $("#available-seats").val(); $("#seat-ammount").html(selected); //$("#available-seats").html(availableSeats - selected); $("#seat-total-price").html(totalPrice.toFixed(2)); }; setAvailableSeats = function(amount, available, max) { max = parseInt(max); //console.log(amount, available, max); available = parseInt(available) + parseInt(amount); if (available <= 0) { //console.log("zero"); $("#available-seats").val(0); } else if (available < max) { //console.log("normal"); $("#available-seats").val(available); } else { //console.log("máximo"); $("#available-seats").val(max); } } //$(".map").maphilight(); $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', data: { action: 'list-cart', cartId: $("#cartId").val(), sessionId: $("#sessionId").val(), lang: $("#zone-map").attr("lang") }, success: function(response) { $("#seats-table").html("").html(response); //$("#tab-lugares").click(); } }); $(".area-item").hover(function(e) { var id = $(this).attr("id").split("_")[1]; $("#zone_" + id).css("background-color", "#ccc"); }, function(e) { var id = $(this).attr("id").split("_")[1]; $("#zone_" + id).css("background-color", "#fff"); }); $(".select-zone").hover(function(e) { $(this).css("background-color", "#ccc"); var id = $(this).attr("id").split("_")[1]; $("#area_" + id).mouseover(); $("#discount_"+id).addClass("hover-mode"); }, function(e) { $(this).css("background-color", "#fff"); var id = $(this).attr("id").split("_")[1]; $("#area_" + id).mouseout(); $("#discount_"+id).removeClass("hover-mode"); }); $(".area-item").click(function() { var id = $(this).attr("id").split("_")[1]; $("#zone_" + id).trigger('click'); return false; }); $(".select-zone-nosit").click(function() { var zoneId = $(this).attr('id').split('_')[1], zoneName = $(".select-zone-name", $(this)).html(), zonePrice = $(".select-zone-price", $(this)).html(); $( "#zone-map-nosit" ).dialog({ width: "auto", fluid: true, maxWidth: 700, resizable: false, modal: true, dialogClass: "zone-map-modal", open: function(event, ui) { $("#zone-name-nosit").html(zoneName); $("#seat-price-nosit").html(zonePrice); $("#zoneId-nosit").val(zoneId); $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', beforeSend: function() { $(".loader").show(); }, complete: function() { $(".loader").hide(); }, data: { action: 'list-zone', zoneId: zoneId, sessionId: $("#sessionId").val(), cartId: $("#cartId").val() }, success: function(response) { console.log(response); } }); }, close: function(event, ui) { $(".selected").removeClass('selected').addClass('available'); calculate(); }, closeText: " X " }); }); $(".select-zone").click(function() { var zoneId = $(this).attr('id').split('_')[1], zoneName = $(".select-zone-name", $(this)).html(); zonePrice = $(".select-zone-price", $(this)).html(); $( "#zone-map" ).dialog({ width: "auto", fluid: true, maxWidth: 700, resizable: false, modal: true, dialogClass: "zone-map-modal", open: function(event, ui) { $("#seats").html(""); $("#zone-name").html(zoneName); $("#seat-price").html(zonePrice); $("#zoneId").val(zoneId); $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', beforeSend: function() { $(".loader").show(); }, complete: function() { $(".loader").hide(); }, data: { action: 'list-zone', zoneId: zoneId, sessionId: $("#sessionId").val(), cartId: $("#cartId").val() }, success: function(response) { $("#seats").html(response); calculate(); //var maxSeats = $("#max-seats").val(), //availableSeats = $("#max-seats").val(); //console.log(availableSeats, maxSeats); //if ( parseInt($("#seat-map td.selected").length) + parseInt(availableSeats) <= maxSeats) { //$("#error-message").html(""); //} else { //$("#error-message").html("Atingiu o limite máximo de " + maxSeats + " lugares que pode reservar para esta sessão."); //} } }); }, close: function(event, ui) { $(".selected").removeClass('selected').addClass('available'); calculate(); }, closeText: " X " }); }); $(".available").live('click', function() { var seatId = $("a", $(this)).attr('data-id'), seatName = $("a", $(this)).attr('title'), zoneId = $("a", $(this)).attr('data-zone-id'), maxSeats = $("#max-seats").val(), availableSeats = $("#available-seats").val(), that = $(this); if (parseInt(availableSeats) > 0) { //if ( parseInt($("#seat-map td.selected").length) + parseInt(availableSeats) <= maxSeats) { $("#error-message").html(""); $("#dialogLoading").dialog({ modal: true, resizable: false, width: 200, height: 100, dialogClass: "ccbDialog", }); // Adicionar lugar ao carrinho $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', dataType: 'json', data: { action: 'add-to-cart', zoneId: zoneId, seatId: seatId, seatName: seatName, cartId: $("#cartId").val(), sessionId: $("#sessionId").val() }, success: function(response) { if (response.success === true && response.message == undefined) { that.removeClass('available').addClass('selected'); } else if (response.success == true && response.message != "") { $("#error-message").html(response.message); that.removeClass('available').addClass('selected'); } calculate(); setAvailableSeats(parseInt(-1), availableSeats, maxSeats); $("#dialogLoading").dialog("close"); } }); } else { $("#error-message").html("Atingiu o limite máximo de " + maxSeats + " lugares que pode reservar para esta sessão."); } }); $(".selected").live('click', function() { var seatId = $("a", $(this)).attr('data-id'), seatName = $("a", $(this)).attr('title'), zoneId = $("a", $(this)).attr('data-zone-id'), maxSeats = $("#max-seats").val(), availableSeats = $("#available-seats").val(), that = $(this); //console.log(">>> " + availableSeats); if (parseInt(availableSeats) >= 0) { //if ( parseInt($("#seat-map td.selected").length) + parseInt(availableSeats) <= maxSeats) { $("#error-message").html(""); } else { $("#error-message").html("Atingiu o limite máximo de " + maxSeats + " lugares que pode reservar para esta sessão."); } $("#dialogLoading").dialog({ modal: true, resizable: false, width: 200, height: 100, dialogClass: "ccbDialog", }); // Remover lugar do carrinho $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', dataType: 'json', data: { action: 'remove-from-cart', zoneId: zoneId, seatId: seatId, seatName: seatName, reservedSeats: 1, cartId: $("#cartId").val(), sessionId: $("#sessionId").val() }, success: function(response) { if (response.success === true) { that.removeClass('selected').addClass('available'); } calculate(); //console.log(availableSeats); setAvailableSeats(1, availableSeats, maxSeats); $("#dialogLoading").dialog("close"); } }); }); $("#buy-tickets").click(function() { $("#zone-map").dialog("close"); $("#seats-table").html(""); // Mostrar os lugares comprados na lista $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', data: { action: 'list-cart', cartId: $("#cartId").val(), sessionId: $("#sessionId").val(), lang: $("#zone-map").attr("lang") }, success: function(response) { $("#seats-table").html("").html(response); $("#tab-lugares").click(); } }); return false; }); $("#confirm-cart").live('click', function() { var thisLang = $(this).attr("lang"); var linkToCart = ""; if(thisLang=="pt") linkToCart = "/Default/pt/Comprar/Carrinho"; else linkToCart = "/Default/en/Buy/ShoppingCart"; $.ajax({ url: '/templates/ajax/zonemap.php', type: 'POST', dataType: 'json', data: { action: 'confirm-cart', cartId: $("#cartId").val() }, success: function(response) { if (response.success === true) { window.location = linkToCart; } } }); return false; }); });