window.addEvent('domready',function() {
	//	===========================================================================================
	//	TRI DE LA LISTE
	//	===========================================================================================
	$('trier').addEvent('change', function(e) {
		var request = new Request ({
			method:'post',
			url: '../routines.ajax.php',
			onComplete: function(response) {
				var retour = JSON.decode(response,true);
				if(retour && retour.method == 'JSON' && retour.etat == false) alert(retour.message);
				else
				{
					response = response.split('$$$$$');
					$('preview-product').fade('hide');
					$('result-tri').set('html', response[0]);
					$('arrayPreload').set('value', response[1]);
					
					/* preview product */
					preloadList('.catalog-02 .item img');
				}
			}
		});
		request.send('my-action=trier&sens='+this.get('value')+'&id_categorie='+$('id_categorie').get('value')+'&titre_categorie='+$('titre_categorie').get('value'));
	});
	
	
	//	===========================================================================================
	//	ACTION SUR LE PREVIEW
	//	===========================================================================================
	if($('preview-product').getElements('ul'))
	{
		initActionShadowBox($('preview-product').getElements('ul')[0]);
		initActionList($('preview-product').getElements('ul')[0], 'selectionner');
	}
	
	
	//	===========================================================================================
	//	ACTION SUR LA SELECTION
	//	===========================================================================================
	if($('my-selection'))
		if($('my-selection').getElements('ul'))
		{
			//	DESELECTION
			$('my-selection').getElements('ul').each(function(ul) {
				initActionShadowBox(ul);
				initActionList(ul, 'deselectionner');
			});
		}

});


/**
 * Initialise les boutons d'action
 * @param (HTML Object) element Div contenant le UL LI des actions (sélection / désélection, détail, vote, commentaire)
 * @param (string) action Action a effectuer : selectionner / deselectionner
 */
function initActionList(element, action) {
	//	ACTION : selectionner / deselectionner
	element.getElements('li')[0].addEvent('click', function(e) {
		var idProjetArray = this.getParent('ul').get('id').split('-');
		var idProjet = idProjetArray[idProjetArray.length-1];
		idProjet = idProjet.split('.')[0];
		var selectionRequest = new Request ({
			method:'post',
			url: '../routines.ajax.php',
			onRequest:function() {
				// si produit deselectionné, disparition fading
				if(action=="deselectionner") {
					element.getParent().get('tween',{property:'opacity', duration:1000, onComplete:function(item) {
						item.setStyle('display','none');
					}}).start(1,0);
				}
			},
			onComplete: function(response) {
				var retour = JSON.decode(response,true);
				if(retour && retour.method == 'JSON' && retour.etat == false) alert(retour.message);
				else if($('my-selection'))
				{
					$('my-selection').set('html', response);
					// si produit selectionné et chargé, apparition fading
					/*if(action!="deselectionner") {
						$('my-selection').getElements('.item')[0].fade('hide');
						(function(){ $('my-selection').getElements('.item')[0].fade('in'); }).delay(1000);
					}*/
					if($('my-selection').getElements('ul'))
					{
						//	DESELECTION
						$('my-selection').getElements('ul').each(function(ul) {
							initActionShadowBox(ul);
							initActionList(ul, 'deselectionner');
						});
					}
				}
			}
		});
		selectionRequest.send('my-action='+action+'&id_projet='+idProjet+'&id_categorie='+$('id_categorie').get('value'));
	});
}

/**
 * Prépare les actions qui ouvrent le shadowbox
 * @param (HTML Object) element Liste UL qui contient boutons d'action
 */
function initActionShadowBox(element) {
	element.getElements('li')[1].addEvent('click', function(e) {
		openShadowProject(this.getParent('ul').get('id'));
	});
	element.getElements('li')[2].addEvent('click', function(e) {
		openShadowProject(this.getParent('ul').get('id'));
	});
	element.getElements('li')[3].addEvent('click', function(e) {
		openShadowProject(this.getParent('ul').get('id'));
	});
}

/**
 * Load info preview
 */
function loadInfo(param) {
	$('preview-product').getElement('img').set('src',_ROOT_URL+'gene/image/common/loading_220.gif');
	var loaded_image=[];
	var myImages = new Asset.images(datasPreview[param]['img'], {
		onProgress : function(i,e) {
			loaded_image[e] = this;
		},
		onComplete: function(){
			/* replace images */
			loaded_image[0].addClass('float-L');
			loaded_image[0].replaces($('preview-product').getElement('img'));
		}
	});
	
	$('preview-product').getElements('a')[0].set('class','projet-'+datasPreview[param]['id']);
	$('preview-product').getElements('a')[0].set('rel',datasPreview[param]['url']);
	$('preview-product').getElements('h3 a')[0].set('class','projet-'+datasPreview[param]['id']);
	$('preview-product').getElements('h3 a')[0].set('html',datasPreview[param]['title']);
	$('preview-product').getElement('p').set('html',$('projet_'+datasPreview[param]['id']).getElements('p span').get('html'));
	$('preview-product').getElement('ul').set('id',datasPreview[param]['url']);
}

/**
 * Preload
 */
function preloadList(a) {
	var loaded_image = [];
	var tempImages = $$(a);
	var arrayPreload = eval('['+$('arrayPreload').get('value')+']');
	var myImages = new Asset.images(arrayPreload, {
		onProgress : function(i,e) {
			loaded_image[e] = this;
		},
		onComplete: function(){
			/* replace images */
			var objChain = new Chain;
			loaded_image.each(function(image, i) {
				image.set('opacity',0);
				image.set('width',tempImages[i].get('width'));image.set('height',tempImages[i].get('height'));
				objChain.chain(function() {
					tempImages[i].erase();
					image.set('tween', {duration:100});
					image.replaces(tempImages[i]).tween('opacity',[0,1]);
					this.callChain.delay(100, this);	
					image.addEvents({
					'mouseenter':function() {
						var pos = image.getPosition();
						if(i<5) {
							var decalX =  -65;
							var decalY =  0;
						} else {
							var decalX =  -65;
							var decalY =  -66;
						}
						var posX = pos.x + decalX;
						var posY = pos.y + decalY;
						fxPreview.start({'left':posX,'top':posY});
						$('preview-product').fade('in');
						$('preview-product').setStyles({ 'display':'block'});
						/* load info */
						var id = image.getParent('div').get('id').split('_')[1];
						loadInfo(id);
					}
					});
									
				});
			});
			objChain.callChain();
		}
	});
}


