//Cart dropdown
$('#cart-button').click(function(event){
	loadPopup('cart');
});

$('#neighborhoodlist').click(function(event){
	disableOnlyPopup();
	loadPopup('neighborhood');
});

function backNeighborhood() {
	disableOnlyPopup();
	loadPopup('cart');
}

function setAdicional(id) {
	document.getElementById(id).checked = document.getElementById(id).checked == true?false:true;
}

function checkComplemento(menu, complemento, loop) {
	var id = 'complemento' + menu + '-' + complemento + '-' + loop;
	var max = document.getElementById('complemento-max' + menu + '-' + complemento).value;
	var size = document.getElementById('complemento-size' + menu + '-' + complemento).value;
	var count = 0;
	for (var i = 0; i < size; i++) {
		if (document.getElementById('complemento' + menu + '-' + complemento + '-' + i).checked) {
			count++;
		}
	}
	if (count <= max) {
		document.getElementById('popup-attention' + menu + '-' + complemento).style.visibility = 'hidden';
	} else {
		document.getElementById(id).checked = false;
		document.getElementById('popup-attention' + menu + '-' + complemento).style.visibility = 'visible';
		document.getElementById('popup-dialog' + menu + '-' + complemento).innerHTML = 'Número máximo de complementos: ' + max;
	}
}

function setComplemento(menu, complemento, loop) {
	var id = 'complemento' + menu + '-' + complemento + '-' + loop;
	var max = document.getElementById('complemento-max' + menu + '-' + complemento).value;
	var size = document.getElementById('complemento-size' + menu + '-' + complemento).value;
	var count = 0;
	for (var i = 0; i < size; i++) {
		if (document.getElementById('complemento' + menu + '-' + complemento + '-' + i).checked) {
			count++;
		}
	}
	if (document.getElementById(id).checked == true) {
		document.getElementById(id).checked = false;
		document.getElementById('popup-attention' + menu + '-' + complemento).style.visibility = 'hidden';
	} else if (count < max) {
		document.getElementById(id).checked = true;
		document.getElementById('popup-attention' + menu + '-' + complemento).style.visibility = 'hidden';
	} else {
		document.getElementById('popup-attention' + menu + '-' + complemento).style.visibility = 'visible';
		document.getElementById('popup-dialog' + menu + '-' + complemento).innerHTML = 'Número máximo de complementos: ' + max;
	}
}

function setOpcao(id) {
	document.getElementById(id).checked = true;
}

function checkout(logged) {
	callback = 'pedido';
	var delivery = document.getElementById('opentime-delivery').value == 'true';
	var schedule = document.getElementById('opentime-schedule').value == 'true';
	var opened = true;
	var opentimeMessage = "";
	if (delivery == true) {
		opened = document.getElementById('opentime-opened').value == 'true';
		opentimeMessage = document.getElementById('opentime-message').value;
	}
	if (delivery == false || (delivery == true && (schedule == true || opened == true))) {
		if (document.getElementById('opentime-onlineorder').value == 'true') {
			var total = document.getElementById('total').innerHTML.replace('R$ ', '').replace(',', '.');
			if (parseFloat(total) > 0) {
				var minimum = document.getElementById('opentime-minimum').value;
				if (parseFloat(total) >= parseFloat(minimum)) {
					if (logged == 'true') {
						document.location.href = '/fechar-pedido?id=' + document.getElementById('id').value;
					} else  {
						disableOnlyPopup();
						loadPopup('login');
					}
				} else {
					disableOnlyPopup();
					document.getElementById('popup-text').innerHTML = "O valor mínimo de um pedido é de " + money(parseFloat(minimum));
					loadPopup('');
				}
			} else {
				disableOnlyPopup();
				document.getElementById('popup-text').innerHTML = "Seu pedido está vazio";
				loadPopup('');
			}
		} else {
			disableOnlyPopup();
			document.getElementById('popup-text').innerHTML = "A empresa não recebe Pedidos Online";
			loadPopup('');
		}
	} else {
		disableOnlyPopup();
		document.getElementById('popup-text').innerHTML = opentimeMessage;
		loadPopup('');
	}
}

function onChangeDayDelivery() {
	var id = document.getElementById('id').value;
	var day = document.getElementById('day').value;
	$.ajax({
	    url: 		'/painel/delivery/schedule/time',
	    type: 		'get',
	    data: 	    'id=' + id + '&day=' + day,
	    dataType: 	'json',
	    success: function(outputList) {
	    	$("#time").empty();
	    	var obj = document.getElementById('time');
	    	var option = document.createElement("option");
	    	if (outputList.length > 0) {
		    	for (i = 0; i < outputList.length; i++) {
		    		var option = document.createElement("option");
		    		option.value = outputList[i];
		    		option.text = outputList[i];
		    		obj.appendChild(option);
		    	}
	    	} else {
	    		var initial = "Não abre nesse dia";
	    		option.value = initial;
	    		option.text = initial;
	    		obj.appendChild(option);
	    	}
	    }
	});
}

function precisaTroco(payment) {
	if (payment == 'Dinheiro') {
		document.getElementById('troco').style.display = 'block';
	} else {
		document.getElementById('troco').style.display = 'none';
	}
}

function cancelPedido(id) {
	$.ajax({
	    url: 		'/conta/pedido',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	if (output.success) {
	    		document.getElementById('status-button').style.background = '#ff5f5f';
		    	document.getElementById('cancel-pedido').style.visibility = 'hidden';
		    	document.getElementById('status-button').innerHTML = 'CANCELADO';
		    	disablePopup();
	    	} else {
	    		document.getElementById('popup-text').innerHTML = output.dialog;
	    		loadPopup('');
	    	}
	    }
	});
}

function getSubstring(str, size) {
	if (str.length > size) {
		str = str.substring(0, size) + "...";
	}
	return str;
}

var defaultComercial;
if (document.getElementById('comercial') != null) {
	defaultComercial = document.getElementById('comercial').src;
}
var viewedComercial = false;

function scrollComercial() {
	if (document.getElementById('comercial') != null) {
		if (isScrolledIntoView(document.getElementById('comercial'))) {
			if (viewedComercial == false) {
				viewedComercial = true;
				document.getElementById('comercial').src = defaultComercial + "?autoplay=1";
			}
		} else if (document.getElementById('comercial').src != defaultComercial) {
			document.getElementById('comercial').src = defaultComercial;
		}
	}
}

function scrollDelivery() {
	var cart = document.getElementById('cart-container');
	if (cart != null) {
		if (getWindowWidth() < 800) {
			document.getElementById('delivery-column-left').style.display = 'block';
			document.getElementById('delivery-column-right').style.display = 'block';
			document.getElementById('delivery-column-left').style.width = '100%';
		} else {
			document.getElementById('delivery-column-left').style.display = 'inline-block';
			document.getElementById('delivery-column-right').style.display = 'inline-block';
			document.getElementById('delivery-column-left').style.width = 'calc(100% - 300px)';
			
			var topMarker = document.getElementById('delivery-top-marker');
			var rightColumn = document.getElementById('delivery-column-right');
			if (isMarkerVisible(topMarker)) {
				rightColumn.style.verticalAlign = 'top';
				cart.style.position = 'relative';
				cart.style.top = '0px';
			} else {
				var leftMarker = document.getElementById('delivery-left-marker');
				var rightMarker = document.getElementById('delivery-right-marker');
				var bottomMarker = document.getElementById('delivery-bottom-marker');
				if (isBellow(leftMarker, bottomMarker) || isMarkerVisible(rightMarker)) {
					rightColumn.style.verticalAlign = 'top';
					cart.style.position = 'fixed';
					cart.style.top = '100px';
				} else {
					rightColumn.style.verticalAlign = 'bottom';
					rightColumn.style.bottom = '0px';
					rightColumn.style.position = 'relative';
					rightColumn.style.display = 'inline-block';
					
					cart.style.verticalAlign = 'top';
					cart.style.top = '0px';
					cart.style.position = 'relative';
					cart.style.display = 'inline-block';
				}
			}
		}
	}
}

function isBellow(elem1, elem2) {
	var $elem1 = $(elem1);
	var elem1Top = $elem1.offset().top;
    
    var $elem2 = $(elem2);
	var elem2Top = $elem2.offset().top;
    
	return (elem1Top > elem2Top);
}

function isMarkerVisible(elem) {
    var $elem = $(elem);
    var $window = $(window);
    
    var docViewTop = $window.scrollTop() + 80;
    var elemTop = $elem.offset().top;
    
    return (elemTop > docViewTop);
}

$(window).scroll(function(e) {
	setHeaderPosition();
	//scrollComercial();
	//scrollDelivery();
});

function setHeaderPosition() {
	if (document.getElementById('sub-header-delivery') != null) {
		if (isMarkerVisible(document.getElementById('marker-sub-header'))) {
			document.getElementById('sub-header-delivery').style.position = 'relative';
			document.getElementById('sub-header-delivery').style.top = '0px';
			document.getElementById('marker-sub-header').style.height = '0px';
		} else {
			document.getElementById('sub-header-delivery').style.position = 'fixed';
			document.getElementById('sub-header-delivery').style.top = '70px';
			document.getElementById('marker-sub-header').style.height = '50px';
		}
	}
}


function isScrolledIntoView(elem) {
    var $elem = $(elem);
    var $window = $(window);
    
    var docViewTop = $window.scrollTop();
    var docViewBottom = docViewTop + $window.height();
    
    var elemTop = $elem.offset().top;
    var elemBottom = elemTop + $elem.height();
    
    return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

function checkRadioButton(id) {
	document.getElementById('radio-button' + id).checked = true;
}

function cancelDelivery(id) {
	$.ajax({
	    url: 		'/painel/delivery/cancel',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	$('#cartList').empty();
	    	document.getElementById('cart-empty').style.display ='block';
    		document.getElementById('total').innerHTML = 'R$ 0,00';
    		document.getElementById('total-cart-itens').innerHTML = 'R$ 0,00';
	    }
	});
}

function getCart() {
	var id = document.getElementById("id").value;
	$.ajax({
	    url: 		'/cart',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	setCart(output);
	    }
	});
}

var vartimeout;
if (typeof pedido != 'undefined') {
	if (pedido == 'true') {
		getCart();
		
		if (typeof categoryList != 'undefined') {
			$(window).scroll(function(e) {
				clearTimeout(vartimeout);
				vartimeout = setTimeout(function(e) {
					var offset = 180;
					var divsize = 260;
					var size;
					if (document.getElementById('wrapper-delivery').offsetWidth == divsize) {
						size = 26;
					} else {
						size = 11;
					}
					
					var index = ($(window).scrollTop() + offset);
					if (index < ($("#category-" + categoryList[0].id).offset().top)) {
						document.getElementById('category-title').innerHTML = "Início";
					} else if (index >= ($("#category-" + categoryList[categoryList.length - 1].id).offset().top)) {
						document.getElementById('category-title').innerHTML = getSubstring(categoryList[categoryList.length - 1].name, size);
					} else {
						for (var j = 1; j <= (categoryList.length - 1); j++) {
							if (index < ($("#category-" + categoryList[j].id).offset().top)) {
								document.getElementById('category-title').innerHTML = getSubstring(categoryList[j - 1].name, size);
								break;
							}
						}
					}
				}, 150);
			});
		}
	}
}

function setCart(output) {
	var subtotal = parseFloat(output.subtotal);
	if (output.minprice == true) {
		document.getElementById('minprice').innerHTML = "A partir de ";
	}
	document.getElementById('total').innerHTML = money(subtotal);
	document.getElementById('total-cart-itens').innerHTML = money(subtotal);
	$('#cartList').empty();
	
	if (output.cartlist.length > 0) {
		document.getElementById('cart-empty').style.display ='none';
	} else {
		document.getElementById('cart-empty').style.display ='block';
	}
	
	var table = document.getElementById('cartList');
	for (i = 0; i < output.cartlist.length; i++) {
		var item = output.cartlist[i];
		var row = table.insertRow(table.rows.length);
		var cell1 = row.insertCell(0);
		cell1.style.width = '100%';
		cell1.innerHTML = item.name;
		cell1.colSpan = 2;
		
		row = table.insertRow(table.rows.length);
		var cell2 = row.insertCell(0);
		cell2.innerHTML = item.quantity;
		cell2.style.width = '50%';
		cell2.style.borderBottom = '1px solid rgba(0,0,0,0.1)';
		var add = createCartAddButtom(item.id);
		add.addEventListener("click", function(e) {
			var id = this.id.replace("add", "");
			addDelivery(id);
		}, false);
		cell2.appendChild(add);
		var remove = createCartMinusButtom(item.id);
		remove.addEventListener("click", function(e) {
			var id = this.id.replace("remove", "");
			removeDelivery(id);
		}, false);
		cell2.appendChild(remove);
		
		var cell3 = row.insertCell(1);
		cell3.style.borderBottom = '1px solid rgba(0,0,0,0.1)';
		if (item.minprice == true) {
			cell3.innerHTML = "A partir de " + money(parseFloat(item.total));
		} else {
			cell3.innerHTML = money(parseFloat(item.total));
		}
		cell3.style.textAlign = 'right';
	}
}

function removeDelivery(item) {
	var id = document.getElementById("id").value;
	$.ajax({
	    url: 		'/painel/delivery/remove',
	    type: 		'post',
	    data: 	    'id=' + id + "&item=" + item,
	    dataType: 	'json',
	    success: function(output) {
	    	setCart(output);
	    }
	});
}

function addDelivery(item) {
	var id = document.getElementById("id").value;
	$.ajax({
	    url: 		'/painel/delivery/add',
	    type: 		'post',
	    data: 	    'id=' + id + "&item=" + item,
	    dataType: 	'json',
	    success: function(output) {
	    	setCart(output);
	    }
	});
}

function publicateMenu(id) {
	$.ajax({
	    url: 		'/painel/cardapio/publicacao',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {

	    }
	});
}

function addComplemento(menu) {
	var parameter = "";
	var complementos = document.getElementById('complemento-size' + menu).value;
	for (var i = 0; i < complementos; i++) {
		var complemento = document.getElementById('complemento-id' + menu + '-' + i).value;
		var itens = document.getElementById('complemento-size' + menu + '-' + complemento).value;
		for (var j = 0; j < itens; j++) {
			if (document.getElementById('complemento' + menu + '-' + complemento + '-' + j).checked) {
				var item = document.getElementById('complemento' + menu + '-' + complemento + '-' + j).value;
				parameter = parameter + "&complemento" + complemento + "-"  + item + "=true";
			}
		}
	}
	
	var id = document.getElementById('id').value;
	$.ajax({
	    url: 		'/painel/complemento/adicionar',
	    type: 		'get',
	    data: 	    'id=' + id + "&item=" + menu + parameter,
	    dataType: 	'json',
	    success: function(output) {
	    	setCart(output);
			disableOnlyPopup();
			loadPopup('cart');
	    }
	});
}

function addProduct(product) {
	var id = document.getElementById('id').value;
	$.ajax({
		    url: 		'/painel/product/add',
		    type: 		'get',
		    data: 	    'id=' + id + "&product=" + product,
		    dataType: 	'json',
		    success: function(output) {
		    	setCart(output);
				loadPopup('cart');
		    }
	});
}

function addMenu(menu, subcategory) {
	var opcao = '';
	if (document.getElementById('opcao-size' + menu + '-' + subcategory).value > 0) {
		opcao    = $('input[name="opcao' + menu + '-' + subcategory + '"]:checked').val();
	}
	if (opcao != undefined) {
		var adicional = "";
		var size = document.getElementById('adicional-size' + menu + '-' + subcategory).value;
		if (size > 0) {
			for (var i = 0; i < size; i++) {
				if (document.getElementById('adicional' + menu + '-' + subcategory + '-' + i).checked) {
					var id = document.getElementById('adicional' + menu + '-' + subcategory + '-' + i).value;
					adicional = adicional + "&adicional" + id + "=true";
				}
			}
		}
		var id = document.getElementById('id').value;
		var obs = document.getElementById('obs' + menu + '-' + subcategory).value;
		$.ajax({
		    url: 		'/painel/delivery/add',
		    type: 		'get',
		    data: 	    'id=' + id + "&item=" + menu + '&opcao=' + opcao + adicional + '&subcategory=' + subcategory + '&obs=' + obs,
		    dataType: 	'json',
		    success: function(output) {
		    	setCart(output);
				disableOnlyPopup();
				loadPopup('cart');
		    }
		});
	} else {
		document.getElementById('popup-attention' + menu + '-' + subcategory).style.visibility = 'visible';
		document.getElementById('popup-dialog' + menu + '-' + subcategory).innerHTML = 'Favor selecionar uma opção';
	}
}

function createCartAddButtom(id) {
	var add = document.createElement("img");
	add.src = '/resources/images/plusLarge.png';
	add.id = 'add' + id;
	add.title = 'Adicionar';
	add.className = 'image-saturate';
	add.style.display = 'inline-block';
	add.style.cursor = 'pointer';
	add.style.width = '16px';
	add.style.height = '16px';
	add.style.marginLeft = '10px';
	return add;
}

function createCartMinusButtom(id) {
	var remove = document.createElement("img");
	remove.src = '/resources/images/minus.png';
	remove.id = 'remove' + id;
	remove.title = 'Remover';
	remove.className = 'image-saturate';
	remove.style.display = 'inline-block';
	remove.style.cursor = 'pointer';
	remove.style.width = '16px';
	remove.style.height = '16px';
	remove.style.marginLeft = '12px';
	return remove;
}

function insertSubcategory(id) {
	var subcategory = document.getElementById('subcategory' + id).value;
	if (subcategory != '') {
		$.ajax({
		    url: 		'/painel/subcategory/insert',
		    type: 		'post',
		    data: 	    'id=' + id + '&subcategory=' + subcategory,
		    dataType: 	'json',
		    success: function(output) {
		    	document.location.href = output.url;
		    }
		});
	}
}

function insertAdicional(id) {
	var adicional = document.getElementById('insert-adicional' + id).value;
	var price = document.getElementById('insert-adicional-price' + id).value;
	if (adicional != '') {
		if (price != '') {
			$.ajax({
			    url: 		'/painel/cardapio/adicional/inserir',
			    type: 		'post',
			    data: 	    'id=' + id + '&adicional=' + adicional + '&price=' + price,
			    dataType: 	'json',
			    success: function(output) {
			    	document.location.href = output.url;
			    }
			});
		} else {
			document.getElementById('popup-text').innerHTML = "Favor informar o valor do adicional";
    		loadPopup('');
		}
	} else {
		document.getElementById('popup-text').innerHTML = "Favor informar o nome do adicional";
		loadPopup('');
	}
}

function atualizarAdicional(id) {
	var adicional = document.getElementById('adicional' + id).value;
	var price = document.getElementById('price' + id).value;
	if (adicional != '') {
		if (price != '') {
			$.ajax({
			    url: 		'/painel/cardapio/adicional/atualizar',
			    type: 		'post',
			    data: 	    'id=' + id + '&adicional=' + adicional + '&price=' + price,
			    dataType: 	'json',
			    success: function(output) {
			    	document.location.href = output.url;
			    }
			});
		} else {
			document.getElementById('popup-text').innerHTML = "Favor informar o valor do adicional";
    		loadPopup('');
		}
	} else {
		document.getElementById('popup-text').innerHTML = "Favor informar o nome do adicional";
		loadPopup('');
	}
}

function removerAdicional(id) {
	var adicional = document.getElementById('adicional' + id).value;
	$.ajax({
	    url: 		'/painel/cardapio/adicional/remover',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function removerCategoria(id) {
	$.ajax({
	    url: 		'/painel/cardapio/categoria/remover',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function removerSubcategoria(id) {
	$.ajax({
	    url: 		'/painel/cardapio/subcategoria/remover',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function upDown(id, up) {
	$.ajax({
	    url: 		'/painel/cardapio/updown',
	    type: 		'post',
	    data: 	    'id=' + id + '&up=' + up,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function atualizarCategoria(id) {
	var name = document.getElementById('name' + id).value;
	$.ajax({
	    url: 		'/painel/cardapio/categoria/atualizar',
	    type: 		'post',
	    data: 	    'id=' + id + '&name=' + name,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function removerComplemento(id) {
	$.ajax({
	    url: 		'/painel/cardapio/complemento/remover',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function removerComplementoItem(id) {
	$.ajax({
	    url: 		'/painel/cardapio/complemento/item/remover',
	    type: 		'post',
	    data: 	    'id=' + id,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function removerOpcional(opcional) {
	var id = document.getElementById('id').value;
	$.ajax({
	    url: 		'/painel/cardapio/opcoes/remover',
	    type: 		'post',
	    data: 	    'id=' + id + '&opcional=' + opcional,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function playSound(interval) {
	setTimeout(function(){
		var audio = new Audio("/resources/audio/beep.wav");
		audio.play();
	}, interval);
}

if (typeof onlineorderbeep != 'undefined') {
	getNewOrder(5000);
}

function getNewOrder(interval) {
	setTimeout(function() {
		$.ajax({
		    url: 		'/painel/pedidos/processando',
		    type: 		'post',
		    dataType: 	'json',
		    success: function(output) {
				if (output.success) {
		    		loadPopup('2');
					playSound(0);
					disablePopup();
					playSound(1000);
					loadPopup('2');
					playSound(2000);
					disablePopup();
					playSound(3000);
					loadPopup('2');
					getNewOrder(20000);
					disablePopup();
					loadPopup('Orders');
		    	} else {
					getNewOrder(120000);
				}
		    }
		});
	}, interval);
}

function changeSubcategoryDiscount(id) {
	var discount = document.getElementById("discount" + id);
	var value = discount.options[discount.selectedIndex].value;
	$.ajax({
	    url: 		'/painel/agenda/categorias',
	    type: 		'post',
	    data: 	    'id=' + id + '&subcategory=' + value,
	    dataType: 	'json',
	    success: function(output) {
	    	document.location.href = output.url;
	    }
	});
}

function changeStatus(id) {
	var status = document.getElementById("statusSelect");
	var value = status.options[status.selectedIndex].value;
	$.ajax({
	    url: 		'/conta/pedido',
	    type: 		'post',
	    data: 	    'id=' + id + '&status=' + value,
	    dataType: 	'json',
	    success: function(output) {
	    	if (output.success) {
	    		document.getElementById('status').innerHTML = status.options[status.selectedIndex].value;
	    	} else {
		    	document.getElementById('popup-text').innerHTML = output.dialog;
		    	loadPopup('');
	    	}
	    }
	});
}