// Marco Bevilacqua - 20080124
// Strutture di controllo
PColArticolo = function(idColore, idTaglia, idArticolo, prezzoFormattato, nome, descrizione, srcImg) {
	this.IdColore = idColore;
	this.IdTaglia = idTaglia;
	this.IdArticolo = idArticolo;
	this.PrezzoFormattato = prezzoFormattato;
	this.Nome = nome;
	this.Descrizione = descrizione;
	this.ImmagineSrc = srcImg;
}

PColVariante = function(id, descrizione) {
	this.Id = id;
	this.Descrizione = descrizione;
}

// Gestione pannello colori/taglie
PannelloColori = function(id, setArticoloHandler, setTagliaHandler) {
		this.Id = id;
		this.Colori = new Array();
		this.Taglie = new Array();
		this.Articoli = new Array();
		
		this.onsetarticolo = setArticoloHandler;		
		this.onsettaglia = setTagliaHandler;		
		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;
}

PannelloColori.prototype.GetArticoloByCodice = function(idArticolo) {
	var x;
	var articolo = null;
	for (x = 0; x < this.Articoli.length; x++) {
		if (this.Articoli[x].IdArticolo == idArticolo) {
				articolo = this.Articoli[x];
				break;
		}
	}
	return articolo;
}

// Inizializzazione del pannello
PannelloColori.prototype.Init = function() {

	// Impostazione della combinazione iniziale
	if ((this.IdColoreDefault == null) || (this.IdTagliaDefault == null)) {
		this.IdColoreDefault = this.Articoli[0].IdColore;
		this.IdTagliaDefault = this.Articoli[0].IdTaglia;
	}
	
	// Carica la tendina dei colori
	var ddlColori = document.getElementById(this.Id + '_ddlColori');
	for (x = 0; x < this.Colori.length; x++) {
		var opt = document.createElement("OPTION");
		opt.value = this.Colori[x].Id;
		opt.text = this.Colori[x].Descrizione;
		ddlColori.options.add(opt);
		
		if (this.IdColoreDefault == this.Colori[x].Id) {
			ddlColori.selectedIndex = ddlColori.options.length - 1;
		}
	}	

	// Gestore dell'evento onChange
	ddlColori.onchange = ColoreClickHandler;
	ddlColori.onchange();
}

// Gestore evento di selezione del colore
ColoreClickHandler = function() {
	var x;
	
	// Quando viene selezionato un colore la tendina delle taglie viene riempita con le taglie disponibili
	var pannelloColori = eval("panColori_" + this.id.substring(0, this.id.indexOf('_')));	

	var ddlTaglie = document.getElementById(pannelloColori.Id + '_ddlTaglie');

	// Taglia impostata prima del cambio del colore
	var curTagliaDescr = null;
	if (ddlTaglie.selectedIndex > 0) {
			curTagliaDescr = ddlTaglie.options[ddlTaglie.selectedIndex].text;
	}

	if (pannelloColori.IdColoreSelezionato != null) {
			// Deselezione del vecchio colore
			DeselezionaColore(document.getElementById(pannelloColori.Id.toString() + '_' + pannelloColori.IdColoreSelezionato.toString()));
			
			// Svuoto la tendina delle taglie
			while (ddlTaglie.options.length > 1) {
				ddlTaglie.remove(1);
			}
	}
	
	// Selezione del nuovo colore
	pannelloColori.IdColoreSelezionato = Number(this.value);
	SelezionaColore(this);

	// Carica la tendina delle taglie
	for (x = 0; x < pannelloColori.Taglie.length; x++) {
		var articolo = pannelloColori.GetArticolo(pannelloColori.IdColoreSelezionato, pannelloColori.Taglie[x].Id);
		if (articolo != null) {
			var opt = document.createElement("OPTION");
			opt.value = articolo.IdArticolo;
			opt.text = pannelloColori.Taglie[x].Descrizione;
			ddlTaglie.options.add(opt);
			
			if ((curTagliaDescr == null) && (pannelloColori.IdTagliaDefault == pannelloColori.Taglie[x].Id)) {
				// Occorre impostare la taglia di default
				ddlTaglie.selectedIndex = ddlTaglie.options.length - 1;
			} else if (curTagliaDescr == opt.text) {
				// Imposta la taglia selezionata dal cliente prima del cambio di colore
				ddlTaglie.selectedIndex = ddlTaglie.options.length - 1;
			}
		}
	}

	if (ddlTaglie.selectedIndex < 1) {
		ddlTaglie.selectedIndex = ddlTaglie.options.length - 1;
	}
	
	ddlTaglie.onchange = TagliaClickHandler;	
	ddlTaglie.onchange();


}

// Gestione dell'evento di selezione della taglia
TagliaClickHandler = function() {
	var pannelloColori = eval("panColori_" + this.id.substring(0, this.id.indexOf('_')));	
	
	if (pannelloColori.IdTagliaSelezionata != null) {
		// Deselezione della vecchia taglia
		DeselezionaTaglia(document.getElementById(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.GetArticoloByCodice(this.value));
	
	return true;
}

SelezionaColore = function(el) {
}

DeselezionaColore = function(el) {
}

SelezionaTaglia = function(el) {
	
}

DeselezionaTaglia = function(el) {
	
}