/**
 * Module
 * 
 * @author	pro	(1.0)
 */
var Module = Class.create(Controller,
{
	/**
	 * Zu welcher View gehört das Module
	 * 
	 * @author	pro (1.0)
	 * @type 	ElementObject
	 */
	View : null,
	
	/**
	 * Konstruktor
	 * 
	 * @author 	pro (1.0)
	 * @param	Boolean 	blnRun	Soll die Run Methode aufgerufen werden
	 * @param	Options				
	 */
	initialize : function($super)
	{
		var args 		= $A(arguments);
			args.shift();
			args		= new Array(true).concat(args);
		$super.apply(this, args);
	},
	
	/**
	 * Erstellt das Overlay-Objekt
	 * 
	 * @author pro (1.0)
	 */
	main : function()
	{
		var args = [this.View];
	    $A(arguments).each(function(value){
	      args.push(value);
	    });

		this.View = this._loadView.apply(this, args);
	},
	
	/**
	 * Zerstört die View und entfernt alle Eventlistener
	 * 
	 * @author	pro (1.0)
	 */
	remove : function($super)
	{
		$super();
		$(this.View).remove();
		this.View = null;
	},
	
	/**
	 * Zeigt den Overlay an
	 * 
	 * @author 	pro (1.0)
	 */
	display : function()
	{
		this.generate();
		this.View.addClassName('hide');	
	},
	
	/**
	 * Blendet den Overlay aus
	 * 
	 * @author 	pro (1.0)
	 */
	hide : function()
	{		
		this.View.removeClassName('hide');	
	},
	
	/**
	 * Prüft, ob der Inhalt des Module leer ist
	 * 
	 * @author 	pro (1.0)
	 * @return	Boolean		Ist der Dialog leer
	 */
	empty : function()
	{
		return (this.View.innerHTML == '');
	}
});



