jQuery(document).ready(function($) { if(!$("html").hasClass("loggedIn")) return; var search_input = $("div.search input.autocomplete"); var selected_item = []; var selection = false; var lock = false; var items = [false]; var buyItem = function(id, callback) { $.post("/api2/buyable/item/" + id, { "POSTDATA": "Y U NO CANT BE EMPTY" }, callback); }; $.extend($.gritter.options, { position: "top-right", fade_in_speed: 100, fade_out_speed: 100, time: 3000 }); $("a.buy").click(function(evt) { var button = $(this); evt.preventDefault(); if(button.hasClass("locked")) return; dataContainer = button.parent(); dataContainer.children().addClass("locked"); var id = dataContainer.attr("data-id"); var name = dataContainer.attr("data-name"); var image = dataContainer.attr("data-image"); buyItem(id, function(data, status) { $.gritter.add({ title: name + " gekauft", text: "Der Artikel wurde erfolgreich gebucht", image: image }); dataContainer.children().removeClass("locked"); }); }); $.getJSON("/api2/buyable/item", function(data) { if(data.error === undefined) { source = []; $.each(data, function(key, item) { items[item.id] = item; source.push({ value: item.id, label: "" +
						item.name + "" + "" + item.name + "
Preis: " + parseFloat(item.price).toFixed(2) + " €
" }); }); search_input.val(""); $("div.search form").removeAttr("action") .children("input[type='submit']").remove(); search_input.autocomplete({ source: source, html: true, appendTo: ".search", close: function(event, ui) { }, focus: function(event, ui) { selection = ui.item; $("ul.ui-autocomplete").children().removeClass("focus"); $(".pk" + selection.value).parent().parent() .addClass("focus"); event.preventDefault(); }, select: function(event, ui) { location.href = "/store/show/" + ui.item.value + "/"; search_input.val(items[ui.item.value].fields.name); event.preventDefault(); } }); search_input.keydown(function(event) { selected_item = $(".pk" + selection.value).siblings(".buy"); if(lock && event.keyCode === 39) { selected_item.addClass("load"); buyItem(selection.value, function(data, status) { selected_item.removeClass("load"); if(status === "success") { selected_item.addClass("success"); //TODO neuer kontostand wär schnaffte } else { selected_item.addClass("failure"); } lock = false; }); } else { lock = (event.keyCode === 18 && selection) } if(!lock) selected_item.removeClass("lock"); else selected_item.addClass("lock"); selected_item.removeClass("failure success"); }); search_input.removeAttr("disabled"); search_input.focus(); } else { search_input.val("Fehler beim Laden der Daten..."); } }); });