(function () { "use strict"; var API_URL_ROOT = "/expo-b/get-banners/"; var getUrl = function () { var data = window.sendData; if (data instanceof Object) { var search = []; 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)); } } } if (search.length) { return API_URL_ROOT + "?" + search.join("&"); } } return API_URL_ROOT; }; var getBanners = 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 addBanner = function (banner) { var parent = document.getElementById(banner.id); if (parent) { if (banner.is_img) { var a = document.createElement("a"); a.href = banner.url; var img = document.createElement("img"); img.src = banner.img; img.alt = banner.alt; a.appendChild(img); parent.appendChild(a); } else if (banner.is_html) { parent.innerHTML = banner.text; } } }; var insertBanners = function (data) { if (data instanceof Array) { for (var i = 0, l = data.length; i < l; i++) { addBanner(data[i]); } } }; var main = function () { getBanners(getUrl(), insertBanners); }; window.addEventListener("load", main); })();