var DynamicCubeViewer = Class.create({
	initialize: function(divElement, requestUrl, facelets) {
		this.divElement = divElement;
		this.requestUrl = requestUrl;
		this.facelets = facelets;
		
		this.showLoading();
		this.showContent();
	},
	
	showLoading: function() {
		var tableElement = new Element("table", { "border": "0", "cellpadding": "0", "cellspacing": "10", "width": "160", "height": "187"});
		var tbodyElement = new Element("tbody");
		var trElement = new Element("tr");
		var tdElement = new Element("td");
		
		tdElement.insert("Caricamento del Cubo di Rubik dinamico...");
		trElement.insert(tdElement);
		tbodyElement.insert(trElement);
		tableElement.insert(tbodyElement);
		
		this.divElement.update(tableElement);
	},
	
	showContent: function() {
        new Ajax.Request(this.requestUrl, {
            method: 'get',
            parameters: {
            	facelets: this.facelets
            },
            onSuccess: function(transport) {
                this.divElement.update(transport.responseText);
            }.bindAsEventListener(this)
        });
	},
	
	updateFacelets: function(facelets) {
		this.facelets = facelets;
		this.showLoading();
		this.showContent();
	}
});

