// Marco Bevilacqua - 20080124
// Strutture di controllo
PColArticolo = function(idColore, idTaglia, idArticolo, prezzoFormattato, disponibile, previstoArrivo) {
	this.IdColore = idColore;
	this.IdTaglia = idTaglia;
	this.IdArticolo = idArticolo;
	this.PrezzoFormattato = prezzoFormattato;
	this.Disponibile = disponibile;
	this.PrevistoArrivo = previstoArrivo;
}

PColVariante = function(id, descrizione) {
	this.Id = id;
	this.Descrizione = descrizione;
}

// Gestione pannello colori/taglie
PannelloColori = function(id, setArticoloHandler) {
		this.Id = id;
		this.Colori = new Array();
		this.Taglie = new Array();
		this.Articoli = new Array();
		
		this.onsetarticolo = setArticoloHandler;		
		this.IdColoreSelezionato = null;
		this.IdTagliaSelezionata = null;
		
		// Combinazione impostata per default
		this.IdColoreDefault = null;
		this.IdTagliaDefault = null;
}

PannelloColori.prototype.GetArticolo = function(idColore, idTaglia) {
	var x;
	var articolo = null;
	for (x = 0; x < this.Articoli.length; x++) {
		if ((this.Articoli[x].IdColore == idColore) && (this.Articoli[x].IdTaglia == idTaglia)) {
				articolo = this.Articoli[x];
				break;
		}
	}
	return articolo;
}

// Inizializzazione del pannello
PannelloColori.prototype.Init = function() {
	
	// Aggancio alla tendina delle taglie del gestore 
	var x;	
	for (x = 0; x < this.Colori.length; x++)
	{
		$(this.Id.toString() + '_' + this.Colori[x].Id.toString()).onclick = ColoreClickHandler;
	}
	
	// Impostazione della combinazione iniziale
	if ((this.IdColoreDefault == null) || (this.IdTagliaDefault == null)) {
			this.IdColoreDefault = this.Articoli[0].IdColore;
			this.IdTagliaDefault = this.Articoli[0].IdTaglia;
	}	
	
	$(this.Id.toString() + '_' + this.IdColoreDefault.toString()).onclick();
	$(this.Id.toString() + '_' + this.IdTagliaDefault.toString()).onclick();
}

SelezionaColore = function(el) {
	$$('#' + el.id + ' >  img')[0].className = 'prodotti-elenco-on';
}

DeselezionaColore = function(el) {
	$$('#' + el.id + ' > img')[0].className = '';
}

SelezionaTaglia = function(el) {
	/*
	if (Pinko.MenuHandler.isAttivo('pnlTaglie')) {
		Pinko.MenuHandler.bloccaOpacita = true;
		Pinko.MenuHandler.toggle('pnlTaglie');
		Pinko.MenuHandler.bloccaOpacita = false;
	}*/
	
	el.style.textDecoration = "underline";
	
	$('Taglia').value = el.firstChild.nodeValue;
}

DeselezionaTaglia = function(el) {
	el.style.textDecoration = "none";
}

ColoreClickHandler = function() {
	var pannelloColori = eval("panColori_" + this.id.substring(0, this.id.indexOf('_')));
	if (pannelloColori.IdColoreSelezionato != null) {
			// Deselezione del vecchio colore
			DeselezionaColore($(pannelloColori.Id.toString() + '_' + pannelloColori.IdColoreSelezionato.toString()));
	}

// Selezione del nuovo colore
	pannelloColori.IdColoreSelezionato = Number(this.id.substring(this.id.indexOf('_') + 1, this.id.length));
	SelezionaColore($(pannelloColori.Id.toString() + '_' + pannelloColori.IdColoreSelezionato.toString()));
	
	// Abilita solo le taglie disponibili
	var x;
	var tagliaDefault = null;
	var elTaglia = null;
	for (x = 0; x < pannelloColori.Taglie.length; x++) {
		elTaglia = $(pannelloColori.Id.toString() + '_' + pannelloColori.Taglie[x].Id.toString());
		if (pannelloColori.GetArticolo(pannelloColori.IdColoreSelezionato, pannelloColori.Taglie[x].Id) == null) {
			
			// Taglia non disponibile
			elTaglia.onclick = null;
			elTaglia.disable = true;			

		} else {
			
			// Taglia disponibile
			if ((tagliaDefault == null) || (pannelloColori.Taglie[x].Id == pannelloColori.IdTagliaSelezionata)) {
				tagliaDefault = pannelloColori.Taglie[x];
			}
			
			elTaglia.onclick = TagliaClickHandler;
			elTaglia.disable = false;
		}
	}

	// Impostare una taglia di default
	$(pannelloColori.Id.toString() + '_' + tagliaDefault.Id.toString()).onclick();
	return true;
}

TagliaClickHandler = function() {
	var pannelloColori = eval("panColori_" + this.id.substring(0, this.id.indexOf('_')));
	
	if (pannelloColori.IdTagliaSelezionata != null) {
		// Deselezione della vecchia taglia
		DeselezionaTaglia($(pannelloColori.Id.toString() + '_' + pannelloColori.IdTagliaSelezionata.toString()));
	}
	
	// Selezione delle nuova taglia
	pannelloColori.IdTagliaSelezionata = Number(this.id.substring(this.id.indexOf('_') + 1, this.id.length));
	SelezionaTaglia(this);
	
	// Impostazione dell'articolo selezionato
	pannelloColori.onsetarticolo(pannelloColori.Id, pannelloColori.GetArticolo(pannelloColori.IdColoreSelezionato, pannelloColori.IdTagliaSelezionata));

	return true;
}