inonit.dom = inonit.loader.module(inonit.loader.base + "browser/dom/");

inonit.debug = inonit.loader.module(
	inonit.loader.base + "browser/debug/",
	{
		listeners: {
			load: function(f) {
				inonit.dom.window.addEventListener("load", f, false);
			}
		}
	}
);

inonit.js = inonit.loader.module(
	inonit.loader.base + "js/object/",
	{
		globals: true,
		flag: {
			warning: function(access) {
				debugger;
			}
		}
	}
);

inonit.slim = inonit.loader.module(
	inonit.loader.base + "slim/client/",
	{ 
		dom: inonit.dom
		,debug: inonit.debug
		,js: inonit.js
		,XMLHttpRequest: inonit.loader.nugget.XMLHttpRequest
	}
);
(function() {
	//	windows opened by this window, by name
	var opened = {};

	inonit.slim.window = {};
	inonit.slim.window.open = function(p) {
		//	TODO	features
		var child = window.open(p.url,p.name,"");
		var object = { window: child };
		if (p.Context) {
			object.context = new p.Context(child);
		}
		opened[p.name] = object;
	}
	inonit.slim.window.getContext = function(child) {
		for (var x in opened) {
			if (opened[x].window == child) {
				return opened[x].context;
			}
		}
	}
	
	if (window.opener && window.opener.inonit && window.opener.inonit.slim) {
		inonit.slim.window.opener = window.opener.inonit.slim.window.getContext(window);
	}
})();

