(function(){
/*
 * Snippets for jQuery
 *
 */
	(
		function($)
		{
			$(document).ready(
				function()
				{
					jQuery.fn.extend
					(
						{
							/*
							OUTER HTML
							*/
							htmlOuter:
								function() {return $('<div>').append( this.eq(0).clone() ).html();}
							,
							
							/*
							INCREMENTER CHAMP
							*/
							champs_incrementer:
								function(index)
								{
									var source_element	=	this;
									if (!isNaN(index))
									{
										var $source_element	=	$(source_element);
										var $champ_elements	=	$source_element.find('[name$="[]"]');
										
										if ($champ_elements.length>=1)
										{
											$champ_elements
												.each
												(
													function()
													{
														var $champ_element	=	$(this);
														
														var champ_nom		=	$champ_element.attr('name');
														
														$champ_element
															.attr('name',champ_nom.replace(/\[]$/,'['+index+']'))
														;
													}
												)
											;
										}
									}
									
									return source_element;// Chainable
								}
							,
							
							/*
							NETTOYER INDEX CHAMP
							*/
							champs_nettoyerIndex:
								function()
								{
									var source_element	=	this;
									var $source_element	=	$(source_element);
									var $champ_elements	=	$source_element.find('[name$="]"]:not([name$="[]"])');
									
									if ($champ_elements.length>=1)
									{
										$champ_elements
											.each
											(
												function()
												{
													var $champ_element	=	$(this);
													
													var champ_nom		=	$champ_element.attr('name');
													
													$champ_element
														.attr('name',champ_nom.replace(/\[-?[0-9]+]$/,'[]'))
													;
												}
											)
										;
									}
									
									return source_element;// Chainable
								}
						}
					)
				}
			);
		}
	)(jQuery);
})();
