//Basket class
function Basket() {

	// Risultato ottenuto da chiamata XHR parsata,
	// tipicamente JSON letterale convertivo in array.
	this.res = null;

}


// Metodo pubblico: callback chiamata da ContentRetriever.notify.
// Se dataArray e' una stringa contiene un messaggio di errore,
// altrimenti e' un vettore di coppie chiave|valore.
// In base alla chiave si decide quale operazione intraprendere,
// ad esempio l' aggiornamento del contenuto di un DIV.
Basket.prototype.update = function(dataArray) {
	if(typeof(dataArray) == 'string') {
		//Errore
		alert(dataArray);
	} else {
		
		this.res = dataArray;

		//Nessun errore, parsing del risultato
		// Il vettore deve contenere le seguenti coppie di chiave|valore nell' ordine:
		// divid     = nome DIV all' interno del quale ignettare codice HTML
		// risultato = risultato da gestire
		// html      = codice html da ignettare nel DIV
		for (key in dataArray) {
			//alert(key+' '+dataArray[key]);
			switch (key) {
				case 'divid':
					var divid=dataArray[key];
					break;
				case 'risultato':
					break;
				case 'value':
					$(divid).value=dataArray[key];
					break;				
				case 'html':
					$(divid).innerHTML=dataArray[key];
					break;
				case 'vhtml':
					var vHtml=dataArray[key];
					for (vkey in vHtml) {
						$(vkey).innerHTML=vHtml[vkey];
					}
					break;
				case 'vhtmlvalue':	
					var vHtml=dataArray[key];
					for (vkey in vHtml) {
						$(vkey).value=vHtml[vkey];
					}
					break;
				case 'vfields':
					var vFields=dataArray[key];
					for (vkey in vFields) {
						var idElem=vkey;
						var vParamElem=vFields[vkey];
						switch (vParamElem['type']) {
							case 'checkbox':
									if (vParamElem['value']=='S') 
										$(idElem).checked=true; 
									else 
										$(idElem).checked=false;
									break;
							case 'select':
									alert ('sel');
									if (vParamElem['value']=='S') 
										$(idElem).checked=true; 
									else 
										$(idElem).checked=false;
									break;
							case 'text':
							case 'radio':
							case 'password':
							case 'testarea':
									break;
						}
					}
					break;
				case 'avvisi':
					var vAvvisi=dataArray[key];
					for (vkey in vAvvisi) {
						alert(vAvvisi[vkey]);
					}
					break;
				case 'fuoco':

					if ((typeof(wpopup)=='object')&&(typeof XMLHttpRequest != "undefined")) {
						wpopup.blur();
						wpopup.opener.focus();
					} 
					window.focus();
					var elemento=document.getElementById(dataArray[key]);
					elemento.focus();
					break;
			}
		}
	}
}

Basket.prototype.getNewsFromBlog = function() {
	var url='/get_last_posts.php?json=1';
	var contentRetriever = new ContentRetriever(url,[basket],'json');
	contentRetriever.getContent();
};

// Oggetto Basket
var basket=new Basket();

// Librerie di base

// Referenziazione rapida elementi per ID
function $(i) {
	return document.getElementById(i);
};

