xx$(document).on('ready pjax:scriptcomplete',function(){ /* End of show/hide sections */ if (typeof aGMapData == "object") { for (var i in aGMapData) { gMapInit("statisticsmap_" + i, aGMapData[i]); } } if (typeof aStatData == "object") { for (var i in aStatData) { statInit(aStatData[i]); } } $(".stats-hidegraph").click (function () { var id = statGetId(this.parentNode); if (!id) { return; } $("#statzone_" + id).html(getWaiter()); graphQuery(id, 'hidegraph', function (res) { if (!res) { ajaxError(); return; } data = JSON.parse(res); if (!data || !data.ok) { ajaxError(); return; } isWaiting[id] = false; aStatData[id].sg = false; statInit(aStatData[id]); }); }); $(".stats-showgraph").click(function () { var id = statGetId(this.parentNode); if (!id) { return; } $("#statzone_" + id).html(getWaiter()).show(); graphQuery(id, 'showgraph', function (res) { if (!res) { ajaxError(); return; } data = JSON.parse(res); if (!data || !data.ok || !data.chartdata) { ajaxError(); return; } isWaiting[id] = false; aStatData[id].sg = true; statInit(aStatData[id]); $("#statzone_" + id).append(""); if (aStatData[id].sm) { if (!data.mapdata) { ajaxError(); return; } $("#statzone_" + id).append("
"); gMapInit('statisticsmap_' + id, data.mapdata); } $("#statzone_" + id + " .wait").remove(); }); }); $(".stats-hidemap").click (function () { var id = statGetId(this.parentNode); if (!id) { return; } $("#statzone_" + id + ">div").replaceWith(getWaiter()); graphQuery(id, 'hidemap', function (res) { if (!res) { ajaxError(); return; } data = JSON.parse(res); if (!data || !data.ok) { ajaxError(); return; } isWaiting[id] = false; aStatData[id].sm = false; statInit(aStatData[id]); $("#statzone_" + id + " .wait").remove(); }); }); $(".stats-showmap").click(function () { var id = statGetId(this.parentNode); if (!id) { return; } $("#statzone_" + id).append(getWaiter()); graphQuery(id, 'showmap', function (res) { if (!res) { ajaxError(); return; } data = JSON.parse(res); if (!data || !data.ok || !data.mapdata) { ajaxError(); return; } isWaiting[id] = false; aStatData[id].sm = true; statInit(aStatData[id]); $("#statzone_" + id + " .wait").remove(); $("#statzone_" + id).append("
"); gMapInit('statisticsmap_' + id, data.mapdata); }); }); $(".stats-showbar").click(function () { changeGraphType('showbar', this.parentNode); }); $(".stats-showpie").click(function () { changeGraphType('showpie', this.parentNode); }); }); var isWaiting = {}; function getWaiter() { return ""; } function graphQuery (id, cmd, success) { $.ajax({ type: "POST", url: graphUrl, data: { 'id': id, 'cmd': cmd, }, success: success, error: function (res) { ajaxError(); } }); } function ajaxError() { alert ("An error occured! Please reload the page!"); } function gMapInit(id, data) { if (!data || !data["coord"] || !data["zoom"] || !data.width || !data.height || typeof google == "undefined") { return; } $("#" + id).width(data.width); $("#" + id).height(data.height); var latlng; if (data["coord"].length > 0) { var c = data["coord"][0].split(" "); latlng = new google.maps.LatLng(parseFloat(c[0]), parseFloat(c[1])); } else { latlng = new google.maps.LatLng(0.1, 0.1); } var myOptions = { zoom: parseFloat(data["zoom"]), center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById(id), myOptions); for (var i = 0; i < data["coord"].length; ++i) { var c = data["coord"][i].split(" "); var marker = new google.maps.Marker({ position: new google.maps.LatLng(parseFloat(c[0]), parseFloat(c[1])), map: map }); } } function statGetId(elem) { var id = $(elem).attr("id"); if (id.substr(0, 6) == "stats_") { return id.substr(6, id.length); } if (id == '' || isWaiting[id]) { return false; } isWaiting[id] = true; return id; } function statInit(data) { var elem = $("#stats_" + data.id); elem.children().hide(); if (data.sg) { $("#statzone_" + data.id).show(); $(".stats-hidegraph", elem).show(); if (data.ap) { $(".stats-" + (data.sp ? "showbar" : "showpie"), elem).show(); } if (data.am) { $(".stats-" + (data.sm ? "hidemap" : "showmap"), elem).show(); } } else { $("#statzone_" + data.id).hide(); $(".stats-showgraph", elem).show(); } } function changeGraphType (cmd, id) { id = statGetId(id); if (!id) { return; } if (!aStatData[id]) { alert('Error'); } if (!aStatData[id].ap) { return; } $("#statzone_" + id).append(getWaiter()); graphQuery(id, cmd, function (res) { if (!res) { ajaxError(); return; } data = JSON.parse(res); if (!data || !data.ok || !data.chartdata) { ajaxError(); return; } isWaiting[id] = false; aStatData[id].sp = (cmd == 'showpie'); statInit(aStatData[id]); $("#statzone_" + id + " .wait").remove(); $("#statzone_" + id + ">img:first").attr("src", temppath +"/"+data.chartdata); }); }