/*global Icinga:false define:false require:false base_url:false console:false */ (function() { "use strict"; var asyncMgrInstance = null; define(['icinga/container','logging','jquery'],function(containerMgr,log,$) { var headerListeners = {}; var pending = { }; var encodeForURL = function(param) { return encodeURIComponent(param); }; var getCurrentGETParameters = function() { var currentGET = window.location.search.substring(1).split("&"); var params = {}; if(currentGET.length > 0) { $.each(currentGET, function(idx, elem) { var keyVal = elem.split("="); params[keyVal[0]] = encodeForURL(keyVal[1]); }); } return params; } ; var pushGet = function(param, value, url) { url = url || (window.location.origin+window.location.pathname); var params = getCurrentGETParameters(); params[param] = encodeForURL(value); var search = "?"; for (var name in params) { if (name === "" || typeof params[name] == "undefined") { continue; } if (search != "?") search += "&"; search += name+"="+params[name]; } return url+search+"#"+window.location.hash; }; var getDOMForDestination = function(destination) { var target = destination; if (typeof destination === "string") { target = containerMgr.getContainer(destination)[0]; } else if(typeof destination.context !== "undefined") { target = destination[0]; } return target; }; var applyHeaderListeners = function(headers) { for (var header in headerListeners) { if (headers.getResponseHeader(header) === null) { // see if the browser/server converts headers to lowercase if (headers.getResponseHeader(header.toLowerCase()) === null) { continue; } header = header.toLowerCase(); } var value = headers.getResponseHeader(header); var listeners = headerListeners[header]; for (var i=0;i