/*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 pending = { }; 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[encodeURIComponent(keyVal[0])] = encodeURIComponent(keyVal[1]); }); } return params; } ; var pushGet = function(param, value, url) { url = url || (window.location.origin+window.location.pathname); var params = getCurrentGETParameters(); params[encodeURIComponent(param)] = encodeURIComponent(value); var search = "?"; for (var name in params) { 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 handleResponse = function(html) { if(this.destination) { containerMgr.updateContainer(this.destination,html,this); } else { containerMgr.createPopupContainer(html,this); } }; var handleFailure = function(result,error) { if(error === "abort") { return; } log.error("Error loading resource",error,arguments); if(this.destination) { containerMgr.updateContainer(this.destination,result.responseText,this); } }; var isParent = function(dom,parentToCheck) { while(dom.parentNode) { dom = dom.parentNode; if(dom === parentToCheck) { return true; } } return false; }; var CallInterface = function() { this.clearPendingRequestsFor = function(destination) { if(!$.isArray(pending)) { pending = []; return; } var resultset = []; for(var x=0;x