/******************
 * Fonctionnalités sur les listes de paramètres
 *****************/
function showAddButton(elem)
{
	elem.find('.ajoutItem').hide();
	elem.find('tr:last').find('.ajoutItem').show();

        elem.find('.ajoutDoc').hide();
	elem.find('tr:last').find('.ajoutDoc').show();
}

function del_item(elem)
{
	var limit = 1;
	if(elem.closest('table').find('tr:first').find('th').size())
		limit += 1;
	if(parseInt(elem.closest('table').find('tr').length) > limit)
	{
		var tab_tmp = elem.closest('table');
		elem.closest('tr').remove();
		showAddButton(tab_tmp);
		
		var start = tab_tmp.find('tr:first').find('th').size() ? 1 : 0;
		
		tab_tmp.find('tr').each(
			function (index)
			{
				rename_item($(this), index - start);
			}
		);
	}
	else
	{
		reset_item(elem, 0);
	}
}

function rename_item(elem, index)
{
	elem.closest('tr').find(".text").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
	    
	elem.closest('tr').find(".textarea").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
	
	elem.closest('tr').find(".checkbox").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
	
	elem.closest('tr').find(".select").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
	
	elem.closest('tr').find(".hidden").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
	    
	elem.closest('tr').find(".file").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('name', name);
		}
	);
}

function reset_item(elem, index)
{
	elem.closest('tr').find(".text").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).val('').attr('name', name);
		}
	);
	    
	elem.closest('tr').find(".textarea").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).val('').attr('name', name);
		}
	);
	
	elem.closest('tr').find(".checkbox").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).attr('checked',false).attr('name', name);
		}
	);

	elem.closest('tr').find(".select").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).val('').attr('name', name);
		}
	);

	
	elem.closest('tr').find(".hidden").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).val('').attr('name', name);
		}
	);
	elem.closest('tr').find(".file").each(
		function ()
		{
			var name = $(this).attr('name').indexOf('[') != -1 ? 
						$(this).attr('name').substr(0, $(this).attr('name').indexOf('[')) + '[' + index + ']' : 
						$(this).attr('name');
			$(this).val('').attr('name', name);
			
			$(this).prev('a').remove();
		}
	);
		
		
		
	
}

function ajout_item(elem) 
{
	var limit = parseInt(elem.closest('table').siblings('input.limit').val());
	if(limit && elem.closest('table').find('tr:first').find('th').size())
		limit += 1;
	if(!limit || parseInt(elem.closest('table').find('tr').length) < limit)
	{
		var clone = elem.closest('table').find('tr:last').clone(/*true*/);
		
		var index = elem.closest('table').find('tr').length;
		if (elem.closest('table').find('tr:first').find('th').size())
			index--;
		
		reset_item(clone, index);
		
		elem.closest('table').append(clone);
		
		//initUIAutocomplete();
		
		showAddButton(elem.closest('table'));
	}
	else
	{
		alert('La limite est de ' + parseInt(elem.closest('table').siblings('input.limit').val()));
	}
	initUIAutocomplete();
	initAjoutItem();
	return false;
}


function initUIAutocomplete() {
	$('.UIautoComplete').each(function() {
		if ($(this).attr('autocompletepage') != '')
		{
			$(this).UIautocomplete('destroy').UIautocomplete({
				source : '/ressources/ajax/auto_complete/' + $(this).attr('autoCompletePage') + '.php',
				minLength: 2
			});
		}
	});
}

/******************
 * Fonctionnalités sur ajout de documents
 *****************/
function del_document(elem)
{
	var limit = 1;
	if(elem.closest('table').find('tr:first').find('th').size())
		limit += 1;
	if(parseInt(elem.closest('table').find('tr').length) > limit)
	{
		var tab_tmp = elem.closest('table');
		elem.closest('tr').remove();
		showAddButton(tab_tmp);
	}
	else
	{
		reset_document(elem);
	}
}

function reset_document(elem)
{
	elem.closest('tr').find(".libelle_doc").html('').css('display','none');
    elem.closest('tr').find(".champ_doc").css('display','block').find('input').attr('disabled',false);
    elem.closest('tr').find(".champ_doc").find('input').each(function(index) {
       $(this).val('');
    });
}

function ajout_document(elem)
{
	var limit = parseInt(elem.closest('table').siblings('input.limit').val());
	if(limit && elem.closest('table').find('tr:first').find('th').size())
		limit += 1;
	if(!limit || parseInt(elem.closest('table').find('tr').length) < limit)
	{
		var clone = elem.closest('table').find('tr:last').clone();
		reset_document(clone);
		clone.find('.ajoutDoc').click( function()
		{
			return ajout_item($(this));
		})
		elem.closest('table').append(clone);

		showAddButton(elem.closest('table'));
	}
	else
	{
		alert('La limite est de ' + parseInt(elem.closest('table').siblings('input.limit').val()));
	}
	initAjoutItem();
	return false;
}

function initAjoutItem() {
	$('.ajoutItem').unbind('click').click( function() 
	{
		return ajout_item($(this));
	});
	$('.ajoutDoc').unbind('click').click( function()
	{
		return ajout_document($(this));
	});	
}

$(function() {
	initAjoutItem();	
	initUIAutocomplete();
});
