diff --git a/templates/client/includes/banners/tops.html b/templates/client/includes/banners/tops.html
index d421696d..f1678855 100644
--- a/templates/client/includes/banners/tops.html
+++ b/templates/client/includes/banners/tops.html
@@ -1,3 +1,5 @@
+{% load static %}
+
diff --git a/templates/client/static_client/js/rejs/tops.js b/templates/client/static_client/js/rejs/tops.js
index b3fbd8a5..5f99943b 100644
--- a/templates/client/static_client/js/rejs/tops.js
+++ b/templates/client/static_client/js/rejs/tops.js
@@ -4,5 +4,67 @@
var API_URL_ROOT = "/expo-b/get-tops/";
var PARENT_ID = "expo_top_events";
- console.log("TOPS");
+ var getUrl = function () {
+ var catalog = "";
+
+ var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname);
+ if (parts) {
+ catalog = parts[1];
+ }
+
+ var data = window.sendData;
+
+ if (data instanceof Object) {
+ var search = ["catalog=" + catalog];
+
+ for (var key in data) {
+ if (data.hasOwnProperty(key)) {
+ var value = data[key];
+
+ if (value instanceof Array) {
+ for (var i = 0, l = value.length; i < l; i++) {
+ search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i]));
+ }
+ } else {
+ search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
+ }
+ }
+ }
+
+ return API_URL_ROOT + "?" + search.join("&");
+ }
+
+ return API_URL_ROOT;
+ };
+
+ var getTops = function (url, callback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", url, true);
+
+ xhr.onreadystatechange = function (event) {
+ if (event.target.readyState === 4) {
+ if (event.target.status === 200) {
+ try {
+ callback(JSON.parse(event.target.responseText));
+ } catch (error) {
+ // do nothing
+ }
+ }
+ }
+ };
+
+ xhr.send();
+ };
+
+ var insertTops = function (data) {
+ console.log(data);
+ };
+
+ var main = function () {
+ console.log("### TOPS ###");
+
+ getTops(getUrl(), insertTops);
+ };
+
+ window.addEventListener("load", main);
})();