function LoadingModal(parent)
{
	Component.call(this, parent, "div");
	
	var self = this;

	this.element.style.backgroundColor = "var(--color-black-alpha-20)";
	this.element.style.zIndex = "200";

	/**
	 * Counter keeps the amount of requests to show the loadingBox.
	 *
	 * Is is incremented each time the box is show and decremented each time it is hidden.
	 *
	 * The box is only hidden if counter goes bellow 1.
	 *
	 * @attribute counter
	 * @type {number}
	 */
	this.counter = 0;

	/**
	 * Loading text.
	 *
	 * @attribute text
	 * @type {Text}
	 */
	this.text = new Text(this);
	this.text.setText("Loading data");
	this.text.setStyle("color", "var(--color-light)");

	/**
	 * Message presented in the loading box.
	 *
	 * @attribute message
	 * @type {Text}
	 */
	this.message = new Text(this);
	this.message.setText("Please wait");
	this.message.setStyle("color", "var(--color-light)");
	this.message.allowWordBreak(true);

	// Icon
	this.icon = new ImageContainer(this);
	this.icon.setImage("files/loading.png");
	
	var rotation = 0.0;
	
	// Animation
	this.timer = new AnimationTimer(function()
	{
		rotation += 0.05;
		self.icon.setStyle("transform", "rotate(" + rotation + "rad)");
	});
	
	// Event manager
	this.manager = new EventManager();
	this.manager.add(window, "resize", function()
	{
		self.updateInterface();
	});
}
Loading box, used to force the user to wait for data from a request.

Blocks every input event (cancels propagation).

@class LoadingModal
@extends {Component}
@param {Component} parent Parent element.