function PanelDisplay() {
	var container = document.createElement("div");
	
	var table = document.createElement('table');
	var tbody = document.createElement('tbody');
	var tr = document.createElement('tr');
	var td = document.createElement('td');
	
	var iframe = document.createElement("iframe");
	iframe.src = "blank.html";
	iframe.className = "iframeContent";
	
	this.objIFrame = iframe;
	
	td.appendChild(iframe);	
	tr.appendChild(td);
	tbody.appendChild(tr);
	
	var tr = document.createElement('tr');
	var td = document.createElement('td');
	
	var input = document.createElement("input");
	input.className = "textInputContent";
	input.onkeypress = function (e) {
		e = (e) ? e : window.event;
		
		if (e.keyCode == 10 || e.keyCode == 13) {
			this.eventHandler(this.getInputTextValue());
			this.resetInputText();
		}
	}.bind(this);
	this.inputText = input;
	
	td.appendChild(input);
	
	var input = document.createElement("input");
	input.type="button";
	input.onclick = function () {
		this.eventHandler(this.getInputTextValue());
		this.resetInputText();
	}.bind(this);
	input.value = "Envoyer";
	input.className = "btnSend";
	td.appendChild(input);
	
	tr.appendChild(td);
	tbody.appendChild(tr);
	table.appendChild(tbody);
	container.appendChild(table);
	
	this.objPanel = container;
}

PanelDisplay.prototype = {
	'objPanel' : null,
	'objIFrame' : null,
	'inputText' : null,
	'eventHandler' : function () {},
	
	/**
	 * public String getInputTextValue()
	 * 
	 * Retourne la valeur du input text.
	 * 
	 * @return (String)
	 */
	
	'getInputTextValue' : function () {
		return this.inputText.value;
	}
	,
	
	/**
	 * public void resetInputText()
	 * 
	 * Remets à zéro la valeur du input text
	 */
	
	'resetInputText' : function () {
		this.inputText.value = '';
	}
	,
	
	/**
	 * public void addContenu(String data)
	 * 
	 * Ajoute du contenu dans le iframe.
	 * 
	 * @param (String) data
	 */
	
	'addContenu' : function (data) {
		if (this.getIFrameBody() == null || !isset(this.getIFrameBody().getElementById)) {
			setTimeout(function (data) {
				this.getIFrameBody().innerHTML += data;
			}.bind(this, data), 100);
		} else {
			this.getIFrameBody().innerHTML += data;
		}
	}
	,
	
	/**
	 * private DOMHMLBody getIFrameBody()
	 * 
	 * Retourne la référence vers le body du iframe.
	 * 
	 * @return (DOMHTMLBody)
	 */
	
	'getIFrameBody' : function () {
		if (this.objIFrame.contentDocument != null) {
			return this.objIFrame.contentDocument.body;
		}	
		if (this.objIFrame.contentWindow != null) {
			return this.objIFrame.contentWindow.document.body;
		}
		return null;
	}
	,
	
	/**
	 * public void setOnSendHandler(Function handler)
	 * 
	 * Définit le handler pour quand les messages sont tapés
	 * 
	 * @param (Function) handler
	 */
	 
	'setOnSendHandler' : function (handler) {
		this.eventHandler = handler;
	}
};

PanelDisplay.extend(Panel);