/**
 * @author alessandro
 */

var colori = [];
var sottoAttributi = new Object;

var fadeEffectDuration = 0.5;

var loader_is_shown;

var idElencoProdotti = 'elenco_prodotti';

function aggiornaConColori(container, idCategoria, paramCategoria, containerOrdinamento, testoLibero){//pagina_attuale){
	if ($(container.id).hasClassName("sel")) {
		$(container.id).removeClassName("sel");
		
			var coloriTemp = [];
	
			var cont = 0;
		
		for (var i = 0; i < colori.length; i++) {
			if (colori[i] != container.id) {
				coloriTemp[cont] = colori[i];
				cont++;
			}	
		}
		colori = coloriTemp;	
	}
	else {
		$(container.id).addClassName("sel");
		colori.push(container.id);
	}
	
	var idColori = [];

	for (var i=0; i < colori.length; i++) {
		idColori[i] = colori[i].split("_")[1];
	}

        loader_is_shown = false;

	Effect.Fade(idElencoProdotti,
		{
			from: 1.0,
			to: 0.01,
			duration: fadeEffectDuration,
			afterFinish: function(){

                                if (!loader_is_shown)
				$('loader_elenco_prodotti').show();
			}
		}
	);
	
	//costruzione parametri
	var params = "";
	
	if (idCategoria != -1) 
	params = params + "idCat=" + idCategoria + '&param=' + paramCategoria + "&";
	else params = "&";

	params = params + 'colori=' + idColori.join(",");
	
	if ($(containerOrdinamento) != null)
		params = params +  '&o=' + $(containerOrdinamento).options[$(containerOrdinamento).selectedIndex].value;
		
	if (testoLibero !== undefined)
		params = params + '&text=' + testoLibero;
	
		//sottoattributi
	var rSottoAttributi = [];
	//trasformo sottoAttributi in un array che è possibile joinare con le virgole
	for (var i in sottoAttributi) rSottoAttributi.push(i + "|" + sottoAttributi[i]);
	
	params = params + '&sa=' + rSottoAttributi.join(",");
	
	//Effect.Appear('ajaxloader');
	//$('ajaxloader').show();
	
	var opt = {
		method: 'get',
		parameters: params,
		onSuccess: function(){
			
                        loader_is_shown = true;
			$('loader_elenco_prodotti').hide();
			
			
			Effect.Fade(idElencoProdotti, {
				from: 0.01,
				to: 1.0,
				duration: 0.5,
				afterFinish: function(){
						updateTypeface();
				
				}
			});		
			
			
			
			
		}
	}
	new Ajax.Updater(idElencoProdotti, '/elenco_prodotti.php', opt);
}


function cambiaOrdinamento (container, idCategoria, paramCategoria, paginaToGo, testoLibero) {

        loader_is_shown = false;

	document.location = "#";
	
	Effect.Fade(idElencoProdotti,
		{
			from: 1.0,
			to: 0.01,
			duration: fadeEffectDuration,
			afterFinish : function(){
                               if (!loader_is_shown)
				$('loader_elenco_prodotti').show();
			}
		}
	);

	var idColori = [];

	for (var i=0; i < colori.length; i++) {
		idColori[i] = colori[i].split("_")[1];
	}

	//costruzione parametri
	var params = "";
	
	if (idCategoria != -1) 
	params = params + "idCat=" + idCategoria + '&param=' + paramCategoria + "&";
	else params = "&";

	params = params + 'colori=' + idColori.join(",")
		+ '&o=' + container.value
			+ '&p=' + paginaToGo;
	if (testoLibero !== undefined)
	params = params + '&text=' + testoLibero;
	
		//sottoattributi
	var rSottoAttributi = [];
	//trasformo sottoAttributi in un array che è possibile joinare con le virgole
	for (var i in sottoAttributi) rSottoAttributi.push(i + "|" + sottoAttributi[i]);
	
	params = params + '&sa=' + rSottoAttributi.join(",");
	

	
	var opt = {
		method: 'get',
		parameters: params,
		onSuccess: function(){

                loader_is_shown = true;
		$('loader_elenco_prodotti').hide();
		
		Effect.Fade(idElencoProdotti,
			{
			from: 0.01, 
			to: 1.0,
			duration: fadeEffectDuration
			});				
		}
		
		
	}
	new Ajax.Updater('elenco_prodotti', '/elenco_prodotti.php', opt);
}

function cambiaPagina (containerOrdinamento, idCategoria, paramCategoria, paginaToGo, testoLibero) {

        loader_is_shown = false;

	Effect.Fade(idElencoProdotti,
		{
			from: 1.0,
			to: 0.01,
			duration: fadeEffectDuration,
			afterFinish: function(){

                                if (!loader_is_shown)
				$('loader_elenco_prodotti').show();
			}
		}
	);

	var idColori = [];

	for (var i=0; i < colori.length; i++) {
		idColori[i] = colori[i].split("_")[1];
	}
	
	//costruzione parametri
	var params = "";
	
	if (idCategoria != -1) 
	params = params + "idCat=" + idCategoria + '&param=' + paramCategoria + "&";
	else params = "&";

	params = params + 'colori=' + idColori.join(",")
		+ '&o=' + $(containerOrdinamento).options[$(containerOrdinamento).selectedIndex].value
			+ '&p=' + paginaToGo;
			
	if (testoLibero !== undefined)
	params = params + '&text=' + testoLibero;
	
		//sottoattributi
	var rSottoAttributi = [];
	//trasformo sottoAttributi in un array che è possibile joinare con le virgole
	for (var i in sottoAttributi) rSottoAttributi.push(i + "|" + sottoAttributi[i]);
	
	params = params + '&sa=' + rSottoAttributi.join(",");
	
	

	var opt = {
		method: 'get',
		parameters: params,
		onSuccess: function(){
                        loader_is_shown = true;
			$('loader_elenco_prodotti').hide();
			
			Effect.Fade('elenco_prodotti', {
				from: 0.01,
				to: 1.0,
				duration: fadeEffectDuration
			});

                         attaccaPaginaAdUrl(paginaToGo);

					
		}
	}
	new Ajax.Updater(idElencoProdotti, '/elenco_prodotti.php', opt);
}


function attaccaPaginaAdUrl (pagina) {

    if (document.location.href.indexOf("#") > 0) {
        document.location.href = document.location.href.replace(/#(.+)$/, ('#' + pagina) );
    }
    else
     document.location.href += '#' + pagina;

}

function loadSottoAttributi (idAttributo) {
	new Ajax.Request(('/out_balloon.php'), {
 		 method: 'get',
		 asynchronous: 'false',
		  parameters: 'idAttr=' + idAttributo,
  			onSuccess: function(transport){
				//alert("fine");
				return transport.responseText;
			}
});

}


function attivaSottoAttributo (container, idAttributo, attributo, idSottoattributo, sottoattributo) {
	$A(HelpBalloon._balloons).each(function(obj){			
					obj.hide();
	}.bind(this));

	var idToCheck = 'voce_attributo_' + idAttributo;
	
	$('att' + idAttributo).setStyle(
	{
		border: '1px solid #3C729E'
	});
	//coloro l'icona selezionata!
	


	
	
if ($(idToCheck) == null) {
	
	//per ora cosi, forse un giorno sarà tutto più bello...

		$('id_elenco_caratteristiche').innerHTML += '<li id="voce_attributo_' + idAttributo + '">' +
		//attributo +
		//': ' + sottoattributo +
	    '<table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr>' +
       	'<td rowspan="2" width="23"><img src="/images/attrib_sx.jpg" /></td> ' +
        '<td rowspan="2">'+ attributo + ': ' + sottoattributo + '</td>' +
        getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'up'", '/images/arrow_up.jpg', 'width="12"') +
        '<td width="23" rowspan="2"><a href="#" ' +
		' onclick="cancellaRiga(' + idAttributo + ', \'' + idToCheck + '\'); return false;"><img src="/images/attrib_x.jpg" /></a></td> ' +
        '</tr> ' +
      	'<tr> ' +
 		getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'down'", '/images/arrow_down.jpg') +
        ' </tr>  </table> ' +
		'</li>';

		sottoAttributi[idAttributo] = idSottoattributo;
		
	}
	
	else {
	
		if (Prototype.Browser.IE) {
			$(idToCheck).firstChild.lastChild.firstChild.childNodes[1].innerHTML =  attributo + ': ' + sottoattributo;
		}
		else {
			$(idToCheck).firstChild.lastChild.firstChild.childNodes[2].innerHTML =  attributo + ': ' + sottoattributo;
		}

		for (var key in sottoAttributi) {
			if (key == idAttributo) {
				sottoAttributi[key] = idSottoattributo;
			}
		}

	}
}




function aggiornaTramiteFiltri(idCategoria, paramCategoria, containerOrdinamento, testoLibero){

        loader_is_shown = false;

	var idColori = [];

	for (var i=0; i < colori.length; i++) {
		idColori[i] = colori[i].split("_")[1];
	}

	Effect.Fade(idElencoProdotti,
		{
			from: 1.0,
			to: 0.01,
			duration: fadeEffectDuration,
			afterFinish: function(){
                                if (!loader_is_shown)
				$('loader_elenco_prodotti').show();
			}
		}
	);
	
	//costruzione parametri
	var params = "";
	
	if (idCategoria != -1) 
	params = params + "idCat=" + idCategoria + '&param=' + paramCategoria + "&";
	else params = "&";

	params = params + 'colori=' + idColori.join(",");
	
	if ($(containerOrdinamento) != null)
		params = params +  '&o=' + $(containerOrdinamento).options[$(containerOrdinamento).selectedIndex].value;
		
	if (testoLibero !== undefined)
		params = params + '&text=' + testoLibero;
	
	//sottoattributi
	var rSottoAttributi = [];
	//trasformo sottoAttributi in un array che è possibile joinare con le virgole
	for (var i in sottoAttributi) rSottoAttributi.push(i + "|" + sottoAttributi[i]);
	
	params = params + '&sa=' + rSottoAttributi.join(",");	
		

	var opt = {
		method: 'get',
		parameters: params,
		onSuccess: function(){
			loader_is_shown = true;
			$('loader_elenco_prodotti').hide();
					
			Effect.Fade(idElencoProdotti, {
				from: 0.01,
				to: 1.0,
				duration: 0.5,
				afterFinish: function(){
				updateTypeface();
			}
			});		
		}
	}
	new Ajax.Updater(idElencoProdotti, '/elenco_prodotti.php', opt);
}


function cancellaRiga (idAttributo, idElement) {
	$(idElement).remove();
	
	//c'e' da rimuovere il sottoattributo
	var sottoAttributiTemp = new Object;
	
	for (var key in sottoAttributi) {
		if (key != idAttributo) {
			sottoAttributiTemp[key] = sottoAttributi[key];
		}
	}
	
	//tolgo il border all'icona
	$('att' + idAttributo).setStyle(
	{
		border: '1px solid #CCCCCC'
	} );
	
	
	//mi salvo il nuovo array
	sottoAttributi = sottoAttributiTemp;
	
	
}

function cambiaValoreAttributo (idAttributo, idSottoattributo, action) {
		new Ajax.Request(('/out_caratteristiche.php'), {
 		 method: 'get',
		  parameters: {
		  	idAttributo: idAttributo,
		  	idSottoattributo: idSottoattributo,
		  	action: action
		  },
  			onSuccess: function(t){
				//ci sono da aggiornare gli onclick dei td
				t.responseText = trim12(t.responseText);
				
				var tokens = t.responseText.split("|");
				
				idSottoattributo = tokens[0];
				attributo = tokens[1];
				sottoattributo = tokens[2];
				
				var idToCheck = 'voce_attributo_' + idAttributo;
				
				if ($(idToCheck) != null) {
				
				
					if (Prototype.Browser.IE) {
						//descrizione
						$(idToCheck).firstChild.lastChild.firstChild.childNodes[1].innerHTML = attributo + ': ' + sottoattributo;
						//up
						$(idToCheck).firstChild.lastChild.firstChild.childNodes[2].innerHTML = 	getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'up'", "/images/arrow_up.jpg", '"width=12"');
						//down
						$(idToCheck).firstChild.lastChild.childNodes[1].childNodes[0].innerHTML = getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'down'", "/images/arrow_down.jpg");
						
						
					}
					else {
						//descrizione
						$(idToCheck).firstChild.lastChild.firstChild.childNodes[2].innerHTML = attributo + ': ' + sottoattributo;
						//up
						$(idToCheck).firstChild.lastChild.firstChild.childNodes[3].innerHTML = 	getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'up'", "/images/arrow_up.jpg", '"width=12"');
						//down
						$(idToCheck).firstChild.lastChild.childNodes[2].childNodes[1].innerHTML = getTdAnchorConImmagineOnclick('cambiaValoreAttributo', idAttributo, idSottoattributo, "'down'", "/images/arrow_down.jpg");

					}
					
				}
				
				sottoAttributi[idAttributo] = idSottoattributo;
				
			}
});
	
	
}

/**
 * 
 * @param {String} functionName
 * @param {Number} param1
 * @param {Number} param2
 * @param {String} action
 * @param {String} imgSrc
 * @return {String} tdString
 */

function getTdAnchorConImmagineOnclick (functionName, param1, param2, action, imgSrc, widthAttr) {
	
		if (widthAttr === undefined) {
			widthAttr = "";
		}
			
	    return '<td ' + widthAttr + '><a href="#" ' + 
		'onclick="' + functionName + '('+ param1 + ',' + param2 + ',' + action + '); return false;"><img src="' + imgSrc + '"/></a></td> ';
	
}

function trim12 (str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}


