function initDigitalProductAction()
{
	postProcessResult();
}

/**
 * Esegue le operazioni di chiusura dell'invocazione ajax
**/
function postProcessResult()
{
	initDigitalList();
	$( '#product-tabber-compare #filter-go-button').unbind('click').click
	(
		function() { productsFilterButtonClicked( $(this) ); return false; }
	);
	$( '#product-tabber-compare #list-header .sort-links a').click
	(
		function() { productsCompareLinkClicked( $(this) ); return false; }
	);
	$( '#product-tabber-compare .pager a').click
	(
		function() { productsCompareLinkClicked( $(this) ); return false; }
	);
}

/***********************
* TABBER COMPARE BLOCK *
***********************/


/**
 * Aggiunge un elemento al comparatore, sovrascrive l'omonima funzione di digita.js
 *
 * @param checkbox, object, required, Il checkbox di selezione dell'elemento
**/
function addCompareItem( checkbox )
{
	var id = checkbox.attr('id');
	var inserted = insertCompareListItem( id, 'product', PRODUCT_ID );

	switch( inserted )
	{
		case 'reset': /* il reset prevede l'esecuzione successiva del success */

			clearCompareList( checkbox );

		case 'success':

			createCompareItemGhost( id, checkbox );
			break;

		case 'rejected':

			checkbox.removeAttr( 'checked' );
			break;

		default:
	}
}

/**
 * Gestisce il click sui link della comparazione prodotto
 *
 * @param link, jQuery, required, Il link cliccato
**/
function productsCompareLinkClicked( link )
{
	var data = link.attr('href').split('?')[1];

	getProductsPage( data );
}

/**
 * Gestisce il click sul pulsante di affinamento ricerca
 *
 * @param link, jQuery, required, Il bottone cliccato
**/
function productsFilterButtonClicked( button )
{
	var filters = $( '#refine-links select:not(.manufacturers-select)' );
	var filter;
	var search = new Array();
	for( var i = 0; i < filters.length; i++ )
	{
		filter = $( filters[ i ] );
		if( filter.val() != '' )
		{
			search.push( filter.val() );
		}
	}
	var query = search.join('|');
	if( query != '' )
	{
		query = 'attr=' + Base64.encode( query );
	}
	var maker_id = $( '#refine-links .manufacturers-select' ).val();
	if( maker_id != '' && maker_id != undefined )
	{
		query += ( query != '' ? '&' : '' ) + 'mi=' + maker_id ;
	}
	/* recupera l'ordinamento attuale */
	var order = button.attr('href').substr( button.attr('href').lastIndexOf('?') + 1 );

	getProductsPage( 'p=1&' + order + '&' + query );
}

/**
 * Richiede una pagina di prodotti di categoria
 *
 * @param query, string, required, Query string
**/
function getProductsPage( querystring )
{
	/* recupera il div di destinazione */
	var destination = $('#product-tabber-compare');
	/* mostra l'ajax loader */
	showAjaxLoader( destination );
	/* effettua la chiamata */
	$.ajax
	(
		{
			type: 'POST', url: SITE_PATH + 'a/ajax.php',
			data: 'c=prodotti&m=getCompareProducts&product=' + PRODUCT_ID + '&category=' + CATEGORY_ID + '&' + querystring,
			success: function( result )
			{
				hideAjaxLoader( destination );
				if( ajaxError( result ) )
				{
					return false;
				}
				var temp = result.split('<|SEP|>');
				$( '.tabber-header' ).empty();
				$( '.tabber-footer' ).empty();
				$( '.product-compare-container').empty();

				$( '.tabber-header' ).append( temp[0] );
				$( '.tabber-footer' ).append( temp[3] ).append( temp[4] );

				$('.product-compare-container').each
				(
					function(){ this.scrollTop = 0; }
				).append
				(
					temp[ 1 ]
				).append
				(
					temp[ 2 ]
				).hide().fadeIn( 'slow' );
				postProcessResult();
			}
		}
	);
}

/**
 * Associa la funzione initDigitalProductAction all'evento onload della pagina
**/
$( document ).ready( initDigitalProductAction );
